来自MP _playbackInterruptionDidEndNotification的奇怪错误

时间:2011-10-05 08:17:16

标签: objective-c

有没有人知道这个控制台输出意味着什么?

我在雪豹上使用xcode 4.0.2上的4.3.3 SDK

并且经常录制视频或播放

我在控制台中收到此消息

MP _playbackInterruptionDidEndNotification :: NSConcreteNotification 0x6402a80 {name = AVController_PlaybackInterruptionDidEndNotification; object = <AVController: 0x64a35f0>; userInfo = {
"AVController_InterruptionStatusNotificationParameter" = "non-resumable.SoloAmbientSound";
"AVController_InterruptorNameNotificationParameter" = "AudioSession-2113";

如果有人能够阐明它意味着什么或如何摆脱它?

提前致谢

1 个答案:

答案 0 :(得分:0)

我在使用多任务手势(4手指轻扫)时,在fullScreen中打开了MPMoviePlayerViewController实例时出现了同样的错误。这导致应用程序崩溃,最终导致iPad无法旋转并终止iPad。

看来造成这种情况的原因很大程度上是由于没有正确设置.plist文件。

  1. 打开您的.plist文件并找到关键字“必需的背景模式”(如果您要显示原始键值,则称为“UIBackgroundModes”)。
  2. 打开“所需背景模式”的下拉列表,然后点击“项目0”(或在其中添加新行)
  3. 在“值”列中,输入“应用播放音频”(如果单击添加行加号的箭头,则可以在下拉菜单中看到它
  4. 一旦你这样做,你不应该再次收到错误。

    // EDIT 只要应用程序在您的应用程序或其他应用程序中的其他位置不需要播放视频和音频时,您可能不希望保留该视频流和使用这些资源。因此,添加并检查.plist中的“应用程序不在后台运行”框。

    对于播放,有很多人认为在播放过程中会发生可能导致应用和设备崩溃的问题。在打开MPMoviePlayerController的方法之前添加此方法:

    - (void) moviePlayerPlaybackStateDidChange: (NSNotification *) notification {
    if (movplayer.playbackState == MPMoviePlaybackStateStopped) {
        [movplayer setContentURL:[movplayer contentURL]];
        [movplayer play];
    }
    }
    

    然后在调用MPMoviePlayerController的方法中添加此观察者:

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil];
    

    这将捕获更改,如视频播放器完成,或快速转发到视频结束,并在iOS不喜欢的情况下将视频重置为开头。管理播放器发生的这类错误/崩溃很有帮助。