首页 文章

iOS - AVAudioSession后台路由更改通知

提问于
浏览
9

尽管有很多关于这个主题的帖子(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开始尝试了几个不同的类别,没有运气 .

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

谢谢你的帮助!

更新需要播放AVPlayer才能在后台接收通知 . 所以这是不可行的,期待通过播放一个无法接受苹果的无声音轨......

1 回答

  • 8

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

相关问题