- [AVFileValidator fpItemNotificationInfo:]:无法识别的选择器发送到实例0x8114e50

时间:2011-10-20 09:49:50

标签: iphone ipad media-player mpmovieplayercontroller nsnotificationcenter

我使用以下代码播放视频。实际上它打得非常好。 有时我得到以下错误 - [AVFileValidator fpItemNotificationInfo:]:无法识别的选择器发送到实例0x8114e50。当我搜索这个时,我到达了媒体播放器的私人部分。我真的不明白这意味着什么。如果有人知道答案,请帮忙。

-(void)playerPrepare
{

    player.view.frame = CGRectMake(0.0f, 0.0f, 480.0f, 320.0f);

    [self.view addSubview:player.view];

    [player setControlStyle:MPMovieControlStyleNone];

    [player play];

}

-(void)breadInPlate
{
    // Do any additional setup after loading the view from its nib.
    NSString *url = [[NSBundle mainBundle] pathForResource:@"10_Anim_iPhone" 
                                                    ofType:@"mp4"];

    NSURL *movieURL = [NSURL fileURLWithPath:url];



    player = [[MPMoviePlayerController alloc] 
              initWithContentURL:movieURL];




    [[NSNotificationCenter defaultCenter] 
     addObserver:self
     selector:@selector(movieFinishedCallback:)                                                 
     name:MPMoviePlayerPlaybackDidFinishNotification
     object:player];

    [player prepareToPlay];

    [self performSelector:@selector(playerPrepare) withObject:nil afterDelay:0.5];

    breadTimer = nil;

}

-(void)viewDidLoad
{
breadTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(breadInPlate) userInfo:nil repeats:NO];
}

- (void) movieFinishedCallback:(NSNotification*) aNotification {
    player = [aNotification object];
    [[NSNotificationCenter defaultCenter] 
     removeObserver:self
     name:MPMoviePlayerPlaybackDidFinishNotification
     object:player];    


    [player.view removeFromSuperview];
    [player release];
    player = nil;


}

偶尔运行代码我遇到了以下错误。

-[AVFileValidator fpItemNotificationInfo:]: unrecognized selector sent to instance 0x8114e50
2011-10-20 14:48:16.754 PansjoPictureBook[1596:307] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AVFileValidator fpItemNotificationInfo:]: unrecognized selector sent to instance 0x8114e50'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x33ac0987 __exceptionPreprocess + 114
    1   libobjc.A.dylib                     0x3347b49d objc_exception_throw + 24
    2   CoreFoundation                      0x33ac2133 -[NSObject(NSObject) doesNotRecognizeSelector:] + 102
    3   CoreFoundation                      0x33a69aa9 ___forwarding___ + 508
    4   CoreFoundation                      0x33a69860 _CF_forwarding_prep_0 + 48
    5   CoreFoundation                      0x33a5ebbf -[NSObject(NSObject) performSelector:withObject:] + 22
    6   Celestial                           0x33c9e309 -[AVObjectRegistry safeInvokeWithDescription:] + 124
    7   CoreFoundation                      0x33a5ebbf -[NSObject(NSObject) performSelector:withObject:] + 22
    8   Foundation                          0x33639795 __NSThreadPerformPerform + 268
    9   CoreFoundation                      0x33a767dd __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12
    10  CoreFoundation                      0x33a485b7 __CFRunLoopDoSources0 + 382
    11  CoreFoundation                      0x33a47e5b __CFRunLoopRun + 230
    12  CoreFoundation                      0x33a47c87 CFRunLoopRunSpecific + 230
    13  CoreFoundation                      0x33a47b8f CFRunLoopRunInMode + 58
    14  GraphicsServices                    0x33b0e4ab GSEventRunModal + 114
    15  GraphicsServices                    0x33b0e557 GSEventRun + 62
    16  UIKit                               0x32099329 -[UIApplication _run] + 412
    17  UIKit                               0x32096e93 UIApplicationMain + 670
    18  PansjoPictureBook                   0x0000224f main + 82
    19  PansjoPictureBook                   0x000021f8 start + 40
)
terminate called after throwing an instance of 'NSException'

1 个答案:

答案 0 :(得分:0)

避免此错误。请检查mpmovieplayer是否已经在播放,如果正在播放,则只有在第一个播放器的重播请求播放第二个播放器后才能释放它。