[Update]离线TTS支持语音播报完成的回调和停止语音播报
This commit is contained in:
@@ -328,16 +328,26 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
* @param text
|
||||
*/
|
||||
public void speakTTSVoice(String text, IMogoTTSCallback callBack) {
|
||||
speakTTSVoice(text);
|
||||
// try {
|
||||
// initFlushStatus();
|
||||
// if ( mHasFlush ) {
|
||||
// mSpeakVoiceMap.put( text, callBack );
|
||||
// mVoiceClient.speakDefault( text );
|
||||
// }
|
||||
// } catch ( Exception e ) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
if (mEngine != null && mHasAuth) {
|
||||
mSpeakVoiceMap.put(text, callBack);
|
||||
// 合成并播放
|
||||
mEngine.speak(text, text, mAILocalTTSIntent);
|
||||
}
|
||||
}
|
||||
|
||||
public void stopSpeakTts(String text) {
|
||||
if (mEngine != null && mHasAuth) {
|
||||
if (mSpeakVoiceMap.containsKey(text)) {
|
||||
mSpeakVoiceMap.remove(text);
|
||||
}
|
||||
mEngine.stop();
|
||||
}
|
||||
}
|
||||
|
||||
public void stopTts() {
|
||||
if (mEngine != null && mHasAuth) {
|
||||
mEngine.stop();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -349,9 +359,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
Logger.d(TAG, "speakTTSVoice");
|
||||
if (mEngine != null && mHasAuth) {
|
||||
// 合成并播放
|
||||
mEngine.speak(text, "1024", mAILocalTTSIntent);
|
||||
// 合成音频,不播放,同时输出实时pcm音频,音频回调在onSynthesizeDataArrived接口
|
||||
// mEngine.synthesize(mAILocalTTSIntent, text, "1024");
|
||||
mEngine.speak(text, text, mAILocalTTSIntent);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -642,7 +650,7 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
context.sendBroadcast(intent);
|
||||
}
|
||||
|
||||
private static class AILocalTTSListenerImpl implements AITTSListener {
|
||||
private class AILocalTTSListenerImpl implements AITTSListener {
|
||||
|
||||
@Override
|
||||
public void onInit(int status) {
|
||||
@@ -655,8 +663,12 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String s, AIError aiError) {
|
||||
public void onError(String utteranceId, AIError aiError) {
|
||||
Logger.d(TAG, "检测到错误:" + aiError.toString());
|
||||
IMogoTTSCallback callBack = PadTTS.this.mSpeakVoiceMap.remove(utteranceId);
|
||||
if (callBack != null) {
|
||||
callBack.onSpeakError(utteranceId, aiError.getError());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -665,8 +677,12 @@ public class PadTTS implements IMogoTTS, VoiceClient.VoiceCmdCallBack, OnTtsList
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCompletion(String s) {
|
||||
public void onCompletion(String utteranceId) {
|
||||
Logger.d(TAG, "播放完成");
|
||||
IMogoTTSCallback callBack = PadTTS.this.mSpeakVoiceMap.remove(utteranceId);
|
||||
if (callBack != null) {
|
||||
callBack.onSpeakEnd(utteranceId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user