我正在制作一个应用程序,每次触发广播接收器时都使用tts来合成wav文件.我正在开发AndroidStudio(最新版)并使用最低15级的API级别19.
我有一个带有BroadcastListener的服务.每次执行BroadcastListener onReceive方法时,我都会使用
tts.synthesizeToFile(playing, null, storagePath + "/" + "tst.wav");
该文件已成功创建,但永远不会调用UtteranceProgressListener的onDone()方法.
public void onCreate() {
super.onCreate();
//Get TTS capabilities
//TODO: Use TextToSpeech.Engine.ACTION_CHECK_TTS_DATA to check if tts is available
tts = new TextToSpeech(PresenterService.this,
new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
//If the TTS engine was started successfully
if (status != TextToSpeech.ERROR) {
tts.setLanguage(Locale.US);
tts.setPitch(PRESENTER_PITCH);
tts.setSpeechRate(PRESENTER_RATE);
}
}
});
tts.setOnUtteranceProgressListener(new TtsUtteranceListener());
IntentFilter filter = new IntentFilter();
filter.addAction("xxxxxxxxxxxxxxxxxx");
mReceiver = new TrackChangedReceiver(tts);
registerReceiver(mReceiver, filter);
}
Run Code Online (Sandbox Code Playgroud)
和TtsUtteranceListener类:
public class TtsUtteranceListener extends UtteranceProgressListener …Run Code Online (Sandbox Code Playgroud)