1

我有一个正在运行的 Android MediaPlayer,我想在语音合成器开始说话时暂停(特别是当 Google 导航应用程序给出指示时)。我很确定这是可能的,因为标准音乐播放器似乎有这种行为。

我已经(从 Stack Overflow Gods 那里)学习了如何在通话期间暂停 MediaPlayer:

在通话中暂停音乐播放器,并在 android 通话后再次恢复播放

我很惊讶我还没有找到类似的机制来监听来自语音合成器的事件。我想我错过了一些东西,如果有人能指出我的链接甚至在这里暗示答案,我将不胜感激。

4

1 回答 1

1

我已经找到了答案:

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

导航应用程序使用“通知”流来调用音频焦点。我在我的应用程序中请求了该流(以及音乐流)的音频焦点。在音频焦点更改的回调方法中暂停/重新启动播放器,一切顺利。

注意:这不适用于所有合成语音。我已经使用语音合成设置菜单中的测试按钮进行了尝试,并且不会触发回调。它仅在“竞争”应用程序足够好以请求适当流的音频焦点时才有效。

于 2011-07-22T13:31:38.047 回答