Android textToSpeech.synthetizeToFile是否创建损坏的文件? @SuppressWarnings(“弃用”) 私有void saveAudio(字符串文本) { HashMap myHashRender=新建HashMap(); 字符串textToConvert=文本; 字符串destinationFileName=“/sdcard/audio.wav”; myHashRender.put(TextToSpeech.Engine.KEY\u PARAM\u outrance\u ID,textToConvert); tts.synthezetofile(textToConvert、myHashRender、destinationFileName); }

Android textToSpeech.synthetizeToFile是否创建损坏的文件? @SuppressWarnings(“弃用”) 私有void saveAudio(字符串文本) { HashMap myHashRender=新建HashMap(); 字符串textToConvert=文本; 字符串destinationFileName=“/sdcard/audio.wav”; myHashRender.put(TextToSpeech.Engine.KEY\u PARAM\u outrance\u ID,textToConvert); tts.synthezetofile(textToConvert、myHashRender、destinationFileName); },android,file,text-to-speech,corrupt,Android,File,Text To Speech,Corrupt,这是我的功能,应该保存到一个文件的音频。方法synthesizeToFile返回0,表示成功,并创建了文件,但文件已损坏,无法在任何媒体播放器中播放。我使用该方法的不推荐版本,因为我的版本是16。我也有 @SuppressWarnings("deprecation") private void saveAudio(String text) { HashMap<String, String> myHashRender = new HashMap(); String te

这是我的功能,应该保存到一个文件的音频。方法synthesizeToFile返回0,表示成功,并创建了文件,但文件已损坏,无法在任何媒体播放器中播放。我使用该方法的不推荐版本,因为我的版本是16。我也有

@SuppressWarnings("deprecation")
private void saveAudio(String text)
{
    HashMap<String, String> myHashRender = new HashMap();
    String textToConvert = text;
    String destinationFileName = "/sdcard/audio.wav";
    myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, textToConvert);
    tts.synthesizeToFile(textToConvert, myHashRender, destinationFileName);
}

这个代码有什么问题


提前谢谢。

是的,它创建了空音频文件。但当我在下一个代码段中注释最后一行时,它开始正确地写入文件:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在尝试播放/收听文件之前,您是否使用进程侦听器或话语完成侦听器确认文件已完成写入?
        String sLcl = screen7thTextFileUri.getPath();
        iLcl=sLcl.lastIndexOf(File.separator);
        sLcl=sLcl.substring(0,iLcl);
        String textLcl = getTypedText();
        mTts.synthesizeToFile(textLcl, null, new File(sLcl+"/test.wav"),"0");
        mTts.speak(textLcl , TextToSpeech.QUEUE_FLUSH, null);