我正在开发一款播客应用程序。该应用程序使用AVAudioSessionCategoryPlayback
会话类型来播放音频。它几乎可以满足我的所有要求,可以暂停其他播放的音乐,当有电话来时被打断并且通常按我的意愿正常运行。但有一个例外情况:当播放更高优先级的音频时(例如运行转向导航应用程序时),我的应用程序中的音频会被降低音量但仍然继续播放。这会产生不希望的两个声音混合在一起的声音效果。我希望我的应用程序中的音频在覆盖声音时暂停,然后在其完成后再次播放。
我尝试更改不同的AVAudioSession属性,例如AVAudioSessionCategoryOptionMixWithOthers
,但这些只会改变较低优先级声音与我的应用程序混合的方式。它们不能改变我的应用程序如何与更高优先级的声音混合。我还尝试观察sharedSession
的otherAudioPlaying
属性,但当这些短片段叠加时,它没有触发更改。
是否有任何方法可以检测何时降低我的应用程序中的音频,以便我可以暂停它?或者防止我的应用程序的音频被降低,使其将这些其他声音视为打断?
谢谢。
kAudioSessionBeginInterruption
和kAudioSessionEndInterruption
吗? - iwasrobbed