我正在做一個來電講話的應用程序,使用TTS說出來電者姓名。我想暫停鈴聲,而TTS正在說話,然後恢復鈴聲。從我研究過的,我們可以使用AudioFocus
(希望如此)。 反正我用下面的代碼暫停電話鈴聲,而通過文本發言,然後恢復
更新
我現在用這個代碼。
public void speak(final String talk) throws InterruptedException {
final AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
int musicVolume= audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, musicVolume, 0);
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
int result = tts.setOnUtteranceProgressListener(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
audioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
System.out.println("done");
}
});
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,"stringId");
tts.speak(talk, TextToSpeech.QUEUE_FLUSH, params);
System.out.println("speaking after tts is over" + talk+" "+result);
}
雖然Ringtone
停止,tts
被播放,但tts
後播放Ringtone
沒有恢復。我該怎麼辦?
如果tts開始工作,我想停止或暫停音樂播放器,如果tts停止, 重新啓動音樂播放器。您可以在此幫助我。 –
編碼邏輯與我寫的相同,我暫停鈴聲,您需要暫停音樂播放器。如果你仍然無法得到答案,最好的選擇是提出一個新問題。 –
感謝您的回覆!我解決了這個問題! –