I have a view that shows a MPMoviePlayerViewController
modally. When testing it in the iPad simulator it works well on the first try. If I dismiss the video and then show the view again, the player only plays the audio, but not the vide开发者_StackOverflow社区o.
Is this a simulator quirk or am I doing something wrong? Here's my code:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
MPMoviePlayerViewController* v = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:v.moviePlayer];
[self presentMoviePlayerViewControllerAnimated:v];
[v release];
}
-(void) playbackDidFinish:(NSNotification*)aNotification
{
MPMoviePlayerController *player = [aNotification object];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:MPMoviePlayerPlaybackDidFinishNotification
object:player];
[player stop];
[self dismissMoviePlayerViewControllerAnimated];
}
Instead of putting the code to create one view controller in the viewWillAppear
of another view controller, why not just create the MPMoviePlayerViewController
directly? Usually view controllers are created or shown in direct response to some user action. Other than that there is nothing wrong with the code shown. I have never had any trouble playing movies in the simulator, but I created the MPMoviePlayerViewController
in didSelectRow or in response to a button click.
精彩评论