Я реализовал функцию TTS (Текст в речь) в своем приложении.Все работает отлично, и теперь я столкнулся с проблемой, в которой я не могу найти решение.
По сути, я получаю Аудио Фокус перед активацией моей функции TTS.В реальном приложении музыка останавливается, когда я это делаю (именно так я и хочу, чтобы она себя вела).Однако, как только функция TTS завершена, я прекращаю фокусировку звука, и музыка / видео не продолжаются.Я не знаю, как продолжить предыдущий музыкальный / видео поток, который воспроизводился до моего TTS.
Вот код, который я реализовал:
Код для отказа от аудио-фокуса после завершения моего TTS:
@Override
public void onUtteranceCompleted(String s) {
Log.v(TAG, s);
if(!getUserPreference().getTest()){
//setDefaultVolume();
audioManager.abandonAudioFocus(this);
}
}
Код для получения аудио-фокуса перед моим TTSначинается:
audioManager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
int requestAudioFocusResult = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
if(requestAudioFocusResult == AudioManager.AUDIOFOCUS_REQUEST_GRANTED){...
Я приветствую любые дополнительные вопросы, касающиеся моего вопроса.Ждем ответов / предложений.
Изменено в соответствии с ответом:
int requestAudioFocusResult = audioManager.requestAudioFocus(this, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
Я реализовал, как сказал ответ, но значение requestAudioFocusResult возвращается как 1, когда должно быть 3. Любая идея?