iphone播放视频时遇到的一个错误解决办法 An AVPlayerItem can occupy only one position in a player’




While playing a video using MPMoviePlayerViewController or MPMoviePlayerController, iOS SDK 5.2 generates an error as follows.

An AVPlayerItem can occupy only one position in a player’s queue at a time.

The exact error is as follows.

*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘An AVPlayerItem can occupy only one position in a player’s queue at a time.’

Please have a look into following code - WHICH GENERATES ERROR.

#pragma mark - Media player  
-(void)initAndPlayMovie:(NSURL *)movieURL andViewController:(UIViewController*)vCtr { 
 self.mPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];  // set source type streaming  
[self.mPlayer.moviePlayer setMovieSourceType:MPMovieSourceTypeStreaming];   [self.mPlayer.moviePlayer setControlStyle:MPMovieControlStyleFullscreen];   
// fit to screen mode  
[self.mPlayer.moviePlayer setScalingMode:MPMovieScalingModeAspectFit];   
// full screen mode 
 [self.mPlayer.moviePlayer setFullscreen:YES animated:YES];   
[vCtr presentMoviePlayerViewControllerAnimated:self.mPlayer]; 
}
Now, have a look into following code WHICH WILL WORK FINE

#pragma mark - Media player 
 -(void)initAndPlayMovie:(NSURL *)movieURL andViewController:(UIViewController*)vCtr {  
self.mPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];  
// set source type streaming 
 [self.mPlayer.moviePlayer setMovieSourceType:MPMovieSourceTypeUnknown];   [self.mPlayer.moviePlayer setControlStyle:MPMovieControlStyleFullscreen];   
// fit to screen mode  
[self.mPlayer.moviePlayer setScalingMode:MPMovieScalingModeAspectFit];   
// full screen mode  [self.mPlayer.moviePlayer setFullscreen:YES animated:YES];  
 [vCtr presentMoviePlayerViewControllerAnimated:self.mPlayer]; 
}
The main difference in both code is as follows.

MovieSourceType is modified to “MPMovieSourceTypeUnknown” instead of “MPMovieSourceTypeStreaming”.

If you have a streaming URL, It is recommended to use “MPMovieSourceTypeStreaming”.

While having a static movie URL, It is recommended to use “MPMovieSourceTypeUnknown”.

If you have a URL from file or video from application itself, It is recommended to use ”MPMovieSourceTypeFile”.

猜你喜欢

转载自lizaochengwen.iteye.com/blog/1943522