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 创建损坏的文件?的主要内容,如果未能解决你的问题,请参考以下文章