当STREAM_VOICE_CALL正在进行时,为什么其他应用程序会听到音频?

时间:2012-07-06 10:22:08

标签: android

在我的应用程序中,当我开始音频通话/音频广播时,我已请求音频管理器进行音频聚焦。

audioManager.requestAudioFocus(null,audioManager.STREAM_VOICE_CALL, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT| AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);

如果用户按 Home 并导航到另一个媒体应用程序,然后如果他们播放任何媒体,则该文件也会以低音量播放。接听电话的人也可以听到媒体声音文件。

当我的音频通话正在进行时,如果用户尝试播放任何音频资源,我如何告诉音频管理员仅将偏好设置给我的应用程序?

1 个答案:

答案 0 :(得分:6)

您所描述的是Android上的默认行为(我相信)。话虽这么说,你应该能够做你所希望的。 Android SDK允许您将单个流类型设置为solo - 导致所有其他流被静音。为此,您应该使用AudioManager setStreamSolo()来电:

audioManager.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true);

您需要在播放开始时执行此操作,然后在播放结束或您的活动完成时将流独奏设置为false。如果可以,请告诉我。

可能有用的一些资源: