【发布时间】:2013-07-27 06:53:33
【问题描述】:
我正在制作一个使用 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 未恢复。我该怎么办?
【问题讨论】:
标签: android text-to-speech ringtone android-audiomanager