textToSpeech.synthetizeToFile 创建损坏的文件?
Posted
技术标签:
【中文标题】textToSpeech.synthetizeToFile 创建损坏的文件?【英文标题】:textToSpeech.synthetizeToFile creates a corrupted file? 【发布时间】:2016-07-24 02:46:09 【问题描述】:@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);
这是我应该将音频保存到文件中的函数。 synthesizeToFile 方法返回 0,表示成功,并创建文件,但文件已损坏,无法在任何媒体播放器中播放。我使用该方法的已弃用版本,因为我的版本是 16。我也有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
这段代码有什么问题?
提前谢谢你。
【问题讨论】:
在尝试播放/收听文件之前,您是否使用进度侦听器或话语完成侦听器来确认文件已完成写入? 【参考方案1】:是的,它创建了空的音频文件。但是当我在下一个代码 sn-p 中注释最后一行时,它开始正确写入文件:
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);
【讨论】:
以上是关于textToSpeech.synthetizeToFile 创建损坏的文件?的主要内容,如果未能解决你的问题,请参考以下文章