尽管主题上有很多帖子(AVPlayer & AVAudioSession,Setting the AVAudioSession category in AppDelegate.m,AvAudioSession 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接受的无声音轨......
答案 0 :(得分:9)
如果您在后台而不播放音乐,则您的应用会被暂停。您无法接收通知或其他任何内容。如果您有任何通知,则会在您的应用再次激活时发送通知。