首页 文章

音频会话中断的通知

提问于
浏览
2

在我的应用程序中,我正在运行后台服务,如果其他应用正在播放音频,我希望我的服务得到通知,例如电话或音乐应用程序或电台应用程序播放音频 .

从AVAudioSession类文档来看,似乎这是AVAudioSessionInterruptionNotification是我需要的东西 .

所以,我尝试过:

-(void)initialization{
     [[NSNotificationCenter defaultCenter] addObserver:self
                                                     selector:@selector(handleAudioSessionInterruption:)
                                                         name:AVAudioSessionInterruptionNotification
                                                       object:nil];
}

-(void)handleAudioSessionInterruption:(NSNotification*)notification{
   NSLog("Get notified for interruption");
}

我在iphone上运行我的应用程序 . 当我拨打电话或拨打电话时,我的应用会收到有关音频会话中断的通知 . 它运作良好!

但是当我打开播放音频的收音机/音乐应用时,我的应用程序不会得到通知 . 为什么?当音乐/广播应用播放音频时,如何通知我的应用?

1 回答

  • 0

    如文档中所述::

    / *当系统中断音频会话和中断结束时,将通知已注册的听众 . 检查通知的userInfo字典中的中断类型 - 开始还是结束 . 在结束中断通知的情况下,检查userInfo字典中的AVAudioSessionInterruptionOptions,指示是否应恢复音频播放 . * /

    因此,如果任何其他应用程序试图接管音频会话,那么将发布中断通知 .

    例如:尝试打开Apple的默认音乐应用程序或尝试录制默认相机应用程序中的视频 . 他们接管音频会话,您将收到相同的通知 .

    只是为了安全起见::监听通知的实例应该仍然在内存中存活 .

相关问题