崩溃: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 冲突?