Dav*_*ith 16 iphone ios avaudiosession avplayer
我正在开发一个Podcast应用程序.这会使用AVAudioSessionCategoryPlayback会话类型播放音频.这几乎可以完成我想要它做的所有事情.它会暂停其他播放的音乐,当有来电时它会被打断并且通常可以按照我想要的方式工作.
有一个例外.当播放更高优先级的音频时(例如,当运行逐向导航应用程序时),我的应用程序中的音频会在音量上下降,但会继续运行.这造成了两种不希望的声音的可怕混合.我宁愿选择我的应用程序中的音频在过度播放的声音中暂停,然后在完成后再次继续.
我尝试过更改不同的AVAudioSession属性AVAudioSessionCategoryOptionMixWithOthers,但这些只会改变低优先级声音与我的应用程序混合的方式.它们不会改变我的如何与更高优先级的声音混合.我也试过观察它的otherAudioPlaying属性,sharedSession但是当我将这些短片重叠时,这并没有引发变化.
有没有办法检测我的应用程序中的音频何时被躲避,以便我可以暂停它?或者,为了防止我的应用程序的音频被躲避,以便将这些其他声音视为中断?
谢谢.
此功能是在 iOS 9 中添加的,可以通过将音频会话模式设置为 AVAudioSessionModeSpokenAudio 来启用。其他会说话的应用程序(例如导航应用程序)会中断您的音频而不是闪避。
请参阅:https : //developer.apple.com/documentation/avfoundation/avaudiosessionmodespokenaudio
我从未这样做过,但我想您可以使用 AudioSession 服务 C 函数audioSessionAddPropertyListener来注册 kAudioSessionProperty_OtherAudioIsPlaying 的回调。
请注意,“FLATDACTED”文档和 Apple DevForums 对于“将来”弃用所有或部分 AudioSession C 函数的可能性存在一些混淆。
| 归档时间: |
|
| 查看次数: |
2493 次 |
| 最近记录: |