如何阻止MPMoviePlayerController显示“此电影无法播放”?

时间:2010-08-06 08:20:07

标签: iphone objective-c mpmovieplayercontroller ios-3.x

我使用MPMoviePlayerController在iPhone上播放一些视频和音频流。

有时一些流程不可用,所以在iPhone OS 3.1上我得到4“这部电影无法播放”警报,即使我收到所有通知。

有谁能告诉我如何防止这种情况发生?

2 个答案:

答案 0 :(得分:2)

为了防止MPMoviePlayerController显示UIAlertView个提醒,您可以使用以下方法:

将以下方法添加到您的应用程序委托中,并确保在启动时仅

启用patchMPVVC

#import "/usr/include/objc/objc-runtime.h"

- (void)_handleError:(NSNotification *)notification {
    // do nothing, or add any custom error handling code here
}

- (void)patchMPVVC {
    // add the _handleError: method to the MPVideoViewController class
    Class class = NSClassFromString(@"MPVideoViewController");
    Method myMethod = class_getInstanceMethod([self class], @selector(_handleError:));
    class_addMethod(class, @selector(_handleError:), method_getImplementation(myMethod), "v@:@");

    // swap method implementations:
    SEL selector = sel_registerName("_videoView_playbackErrorNotification");
    Method originalMethod = class_getInstanceMethod(class, selector);       
    myMethod = class_getInstanceMethod(class, @selector(_handleError:));
    method_exchangeImplementations(originalMethod, myMethod);
}

请记住,苹果可能会拒绝此代码,因为它引用了私有MPVideoViewController类和_videoView_playbackErrorNotification方法。

答案 1 :(得分:1)

我很遗憾地告诉你,这是(据我所知)不可能做到的。 我也处理过同样的问题,即使我花了很多时间调查这个问题,但我找不到解决方案。