2011-07-21 163 views
1

我有一個Android MediaPlayer正在運行,當語音合成器開始講話時(特別是當Google導航應用程序給出指示時),我想暫停它。我很確定這是可能的,因爲標準音樂播放器似乎有這種行爲。暫停Android MediaPlayer用於合成語音

我已經學會(從堆棧溢出神)如何在電話暫停的MediaPlayer:

Pause music player on a phone call and again resume it after phone call in android

我很驚訝,我一直沒能找到類似的機制傾聽來自語音合成器的事件。我想我已經錯過了一些東西,如果有人能夠在這裏指向我的鏈接,甚至暗示答案,我會非常感激。

回答

1

我已經找到答案了這一點:使用「通知」流音頻焦點

http://developer.android.com/reference/android/media/AudioManager.OnAudioFocusChangeListener.html

導航應用撥打電話。我在我的應用程序中請求了該音頻流(以及音樂流)的音頻焦點。在回放方法中暫停/重新啓動播放器,以便進行音頻焦點更改,並且您很好。

注意:這將不適用於全部合成語音。我已經使用語音合成設置菜單中的測試按鈕嘗試過了,並且不會觸發回調。它只適用於「競爭」應用程序足夠好的情況下爲適當的流請求音頻焦點。