gpt4 book ai didi

android - TTS 和播放声音 - Android

转载 作者:行者123 更新时间:2023-11-29 14:32:34 25 4
gpt4 key购买 nike

我的应用程序中有一个 viewpager。当用户向右/向左滑动时,我使用 TTS 引擎读出文本并使用 MediaPlayer 播放声音。

问题是两者同时播放.. TTS 引擎说出文本结束后如何播放声音?

P.S:我不想使用 sleep 或 wait。

更新:

这是我的代码:

@SuppressLint("NewApi")
@SuppressWarnings("deprecation")
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {

if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
} else {
//Do Something here
}


if(Build.VERSION.SDK_INT >= 15 ){
UtteranceProgressListener listener = new UtteranceProgressListener() {

@Override
public void onStart(String utteranceId) {
// TODO Auto-generated method stub

}

@Override
public void onError(String utteranceId) {
// TODO Auto-generated method stub

}

@Override
public void onDone(String utteranceId) {
// TODO Auto-generated method stub
//start MediaPlayer
playMedia(viewPager.getCurrentItem());
}
};
tts.setOnUtteranceProgressListener(listener);
}
else{
tts.setOnUtteranceCompletedListener(new OnUtteranceCompletedListener(){

@Override
public void onUtteranceCompleted(String arg0) {
playMedia(viewPager.getCurrentItem());
}

});
}
} else {
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}

最佳答案

你必须给它一个 id 参数。否则它不会调用监听器:

HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");

textToSpeech.speak(string,TextToSpeech.QUEUE_ADD, params);

关于android - TTS 和播放声音 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16510355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com