我使用以下代码播放视频。实际上它打得非常好。 有时我得到以下错误 - [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'
答案 0 :(得分:0)
避免此错误。请检查mpmovieplayer是否已经在播放,如果正在播放,则只有在第一个播放器的重播请求播放第二个播放器后才能释放它。