Пытается сохранить вывод TTS
как файл .wav
. Тем не менее, проблема с сохранением вывода, поскольку я не знаком с файловой структурой. Более того, я тестирую его на Nexus 5, который не поддерживает хранение SD.Текст в речь из диалога
Когда я открываю диалоговое окно и пытаюсь сохранить файл, он разбивает все приложение. Ошибка в каталоге не существует. Вот код, который я использовал:
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_CLASS_TEXT);
builder.setView(input);
builder.setPositiveButton("SAVE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//m_Text = input.getText().toString();
File directory = new File(Environment.getDataDirectory()
+ "/myAppCache/");
if (!directory.exists()) {
directory.mkdir();
}
HashMap<String, String> myHashRender = new HashMap();
String toSpeak = input.getText().toString();
t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);
String destFileName = Environment.getDataDirectory()+"/myAppCache/wakeUp.wav";
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, toSpeak);
t1.synthesizeToFile(toSpeak, myHashRender, destFileName);
t1.stop();
t1.shutdown();
}
});
builder.setNegativeButton("Play", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
/*String toSpeak = input.getText().toString();
t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null);*/
}
});
builder.show();
}
Вот это LogCat, а также:
> 07-05 11:34:48.824 2471-2471/zyia.alarm.zyia.zyia E/TextToSpeech﹕ Opening file /storage/emulated/0/myAppCache/wakeUp.wav failed
java.io.FileNotFoundException: No such file or directory
at android.os.Parcel.openFileDescriptor(Native Method)
at android.os.ParcelFileDescriptor.openInternal(ParcelFileDescriptor.java:253)
at android.os.ParcelFileDescriptor.open(ParcelFileDescriptor.java:199)
at android.speech.tts.TextToSpeech$17.run(TextToSpeech.java:1793)
at android.speech.tts.TextToSpeech$17.run(TextToSpeech.java:1783)
at android.speech.tts.TextToSpeech$Connection.runAction(TextToSpeech.java:2232)
at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:742)
at android.speech.tts.TextToSpeech.runAction(TextToSpeech.java:732)
at android.speech.tts.TextToSpeech.synthesizeToFile(TextToSpeech.java:1783)
at android.speech.tts.TextToSpeech.synthesizeToFile(TextToSpeech.java:1840)
at zyia.alarm.zyia.zyia.AddAlarm$7.onClick(AddAlarm.java:207)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Я попытался с помощью this question, а также для создания каталога, но он не работает. Любая помощь будет оценена по достоинству.