MpMovieplayer在提醒警报弹出窗口期间崩溃

时间:2013-04-15 13:45:20

标签: iphone ios objective-c ipad mpmovieplayercontroller

我遇到这个奇怪的问题。当我使用MpMoviePlayerController播放任何视频时,如果我收到提醒提醒并选择关闭,那么我的应用程序将崩溃并显示日志:

  

“AVPlayerItem不能与多个实例相关联   AVPlayer”。

我只使用MpPlayerController的一个实例。

我搜索了这个问题,发现如果我设置useApplicationAudioSession = NO的属性MpMoviePlayerController,那么就可以避免这种情况,然后我就没有崩溃了。 但问题是,在IOS6之后,此属性已弃用,并且Apple不建议使用此属性。

2 个答案:

答案 0 :(得分:1)

我猜测问题是您的音频会话被警报消息的音频ping中断。尝试使用共享实例来获取音频会话。然后设置通知侦听器以正确处理中断。请参阅此处的苹果指南Handle Audio Interruptions

NSError *setCategoryError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:      &setCategoryError];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(interruptionHandler:) name:AVAudioSessionInterruptionNotification object:nil];

答案 1 :(得分:1)

我认为你想要的是:AVAudioSessionCategoryAmbient

查看所有“Audio Session Categories”的说明。

这应该适合你:

NSError *setCategoryError = nil;
BOOL success = [[AVAudioSession sharedInstance]
                 setCategory: AVAudioSessionCategoryAmbient
                 error: &setCategoryError];

描述于:Setting the Category