iOS - AVAudioSession后台路由更改通知

时间:2014-01-21 00:23:17

标签: ios avaudiosession

尽管主题上有很多帖子(AVPlayer & AVAudioSessionSetting the AVAudioSession category in AppDelegate.mAvAudioSession won't work in iOS7?),但我无法解决iOS 7中的这个特定问题:
- 我想在后台接收AVAudioSession路线变更通知 - 我的应用程序在任何时候都没有播放任何音乐,也不应该干扰播放声音的其他应用

设置:
- 在p-list UIBackgroundModes中启用音频
- 在主控制器中:

// AUDIO
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback  withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil];
[audioSession setActive:YES error:nil];

// NOTIFICATIONS
[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(audioSessionRouteChanged:)
                                                 name:AVAudioSessionRouteChangeNotification
                                               object:nil];

这在前台工作正常,所以我必须缺少一些简单的启用背景通知的东西。我尝试了几个以AVAudioSessionCategoryAmbient开头的不同类别,但没有运气。

播放声音时是否只接收背景通知?

感谢您的帮助!

UPDATE 需要播放AVPlayer才能在后台接收通知。不幸的是,这是不可行的,期待通过播放一个不被Apple接受的无声音轨......

1 个答案:

答案 0 :(得分:9)

如果您在后台而不播放音乐,则您的应用会被暂停。您无法接收通知或其他任何内容。如果您有任何通知,则会在您的应用再次激活时发送通知。