Android TextToSpeech addSpeech()不工作

Android TextToSpeech addSpeech()不工作,android,text-to-speech,Android,Text To Speech,我有一个高清渴望手机与安卓2.3 TTS运行良好,它能说出我给出的所有文本。但是当我用下面的这两行来设置我自己对某些文本的声音时,它只是忽略它并合成文本,就像这一行没有写出来一样 tts.addSpeech("salam", "/sdcard/salam.wav"); tts.addSpeech("shalam", "com.company.appname", R.raw.shalam); ... tts.speak("salam", TextToSpeech.QUEUE_FLUSH, null

我有一个高清渴望手机与安卓2.3

TTS运行良好,它能说出我给出的所有文本。但是当我用下面的这两行来设置我自己对某些文本的声音时,它只是忽略它并合成文本,就像这一行没有写出来一样

tts.addSpeech("salam", "/sdcard/salam.wav");
tts.addSpeech("shalam", "com.company.appname", R.raw.shalam);
...
tts.speak("salam", TextToSpeech.QUEUE_FLUSH, null);  //<--This isn't playing my voice file.
tts.speak("shalam", TextToSpeech.QUEUE_FLUSH, null);  //<--Neither is this
tts.addSpeech(“salam”,“sdcard/salam.wav”);
tts.addSpeech(“shalam”,“com.company.appname”,R.raw.shalam);
...

tts.speak(“salam”,TextToSpeech.QUEUE\u FLUSH,null)// 好的,我发现了我的问题,非常愚蠢的情况,浪费了我几个小时的时间!!我希望如果有人犯了我的错误会有所帮助

我们应该将文本映射推迟到TTS成功初始化的点,例如在
onInit
函数中:

@Override
public void onInit(int status) {
    if(status == TextToSpeech.SUCCESS)
    {
        tts.setLanguage(Locale.US);
        mapVoices();
    }
    else
        ...
}

private void mapVoices()
{
    tts.addSpeech("salam", "/sdcard/salam.wav");
    tts.addSpeech("shalam", "com.company.appname", R.raw.shalam);
    //...
}

我也遇到了同样的问题,但我的问题是.wav文件。mp3工作正常。什么是mapVoices()?@ktos1234它是一种自定义方法,可以将文本映射到语音文件。我编辑了我的答案以便更清楚。