繁体   English   中英

使用AVAudioPlayer播放音频文件时iPhone崩溃,来电中断播放

[英]iPhone crash when playing audio file using AVAudioPlayer and incoming call interrupts playback

我开发了一个iPhone应用程序,可以播放不同的音乐文件。 一切正常,除非打来的电话中断播放。 这会使应用程序崩溃并显示以下日志:

开始崩溃日志

Thread 0 Crashed:

0   libobjc.A.dylib                 0x32d98f20 objc_msgSend + 20
1   AVFoundation                    0x30739ddc AVAudioSessionPropertyListener(void*, unsigned long, unsigned long, void const*) + 284
2   AudioToolbox                    0x36d78bec SSServer_AudioSessionInterruptionListenerMessage + 316
3   AudioToolbox                    0x36d017bc _XAudioSessionInterruptionListenerMessage + 128
4   AudioToolbox                    0x36c68584 mshMIGPerform + 224
5   CoreFoundation                  0x3752f5c4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 22
6   CoreFoundation                  0x3752f582 __CFRunLoopDoSource1 + 158
7   CoreFoundation                  0x3752182e __CFRunLoopRun + 574
8   CoreFoundation                  0x37521504 CFRunLoopRunSpecific + 220
9   CoreFoundation                  0x37521412 CFRunLoopRunInMode + 54
10  GraphicsServices                0x33e76d1c GSEventRunModal + 188
11  UIKit                           0x3591d574 -[UIApplication _run] + 580
12  UIKit                           0x3591a550 UIApplicationMain + 964

结束崩溃日志

我已将其范围缩小到应用程序委托中的applicationWillResignActive方法中的调用,但我似乎无法弄清楚,因为如果应用程序进入后台模式(通过按下主屏幕按钮),则该应用程序可以正常工作,只会崩溃接到电话时。

在applicationWillResignActive方法中导致崩溃的行是:

[navController popToRootViewControllerAnimated:NO]; // navController是UINavigationController的实例; 我使用此语句删除了所有视图控制器,并且当应用恢复时,我按了第一个视图控制器,以使应用从头开始。

有谁知道为什么只有在接到电话时才发生此崩溃?

我们一直在跟踪一个非常类似的崩溃。

我们的结果如下所示:

https://github.com/mattgallagher/AudioStreamer/issues/6

特别是,MyAudioSessionInterruptionListener(或传递给AudioSessionInitialize的回调的名称)及其inClientData在注册后无法更改,因此,即使基础对象已被释放,回调也必须始终做一些有意义的事情。

为AudioStream建议的解决方案是使用静态变量,并确保它指向当前对回调感兴趣的对象,并且永远不要指向已释放的对象-重要的是不要使用inClientData。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM