崩溃:iOS 中的 AVAudioSession 通知线程

Posted

技术标签:

【中文标题】崩溃:iOS 中的 AVAudioSession 通知线程【英文标题】:Crashed: AVAudioSession Notify Thread in iOS 【发布时间】:2018-01-29 12:52:26 【问题描述】:

我在 AudioToolBox 中遇到 EXC_BAD_ACCESS 崩溃。如何正确处理中断?

请查看 crashlytics 屏幕截图以了解更多信息。

【问题讨论】:

我也遇到了同样的问题..你找到什么了吗? @Tina 已修复!答案在这里添加。请检查 【参考方案1】:

当我接到电话/faceTime 时,我的音频流播放器崩溃了。它实际上是一个非 ARC 的老班。只需为流类添加一个 InterruptionNotification Observer,如果流类正在播放,我们需要在中断开始时暂停播放器实例。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleInterruptionChangeToState:) name:@"ASAudiosessionInterruptionOccuredNotification" object:nil];

- (void)handleInterruptionChangeToState:(NSNotification *)notification 
AudioQueuePropertyID inInterruptionState = (AudioQueuePropertyID) [notification.object unsignedIntValue];
if (inInterruptionState == kAudioSessionBeginInterruption)
    if ([self isPlaying]) 
        [self pause];

        pausedByInterruption = YES; //a global Bool variable
    

else if (inInterruptionState == kAudioSessionEndInterruption)
    AudioSessionSetActive( true );
    if ([self isPaused] && pausedByInterruption) 
        [self pause]; // this is actually resume
        pausedByInterruption = NO;
    

希望对你有帮助。

【讨论】:

以上是关于崩溃:iOS 中的 AVAudioSession 通知线程的主要内容,如果未能解决你的问题,请参考以下文章

应用程序因 AVAudioSession privateBeginInterruption 而崩溃

如何解决 iOS 中的 AVCaptureSession v AVAudioSession 冲突?

iOS 音频-AVAudioSession

IOS:AVAudioSession 不工作

iOS - 后台的 AVAudioSession 路由更改通知

iOS- 关于AVAudioSession的使用——后台播放音乐