2010-05-11 126 views
1

我有一个模态显示MPMoviePlayerViewController的视图。在iPad模拟器中测试时,它在第一次尝试时效果很好。如果我关闭视频并再次显示视图,则播放器只播放音频,但不播放视频。在iPad模拟器中测试MPMoviePlayerViewController

这是一个模拟器怪癖或我做错了什么?这里是我的代码:

- (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]; 
} 

回答

2

而不是把代码来创建另一个视图控制器的viewWillAppear一个视图控制器,为什么不直接创建MPMoviePlayerViewController?通常视图控制器是直接响应某些用户操作而创建或显示的。除此之外,所显示的代码没有任何问题。在模拟器中播放电影时我从来没有遇到任何问题,但我在didSelectRow中创建了MPMoviePlayerViewController,或者只是点击了按钮。

+0

谢谢。我想在点击一个标签栏图标后全屏显示MPMoviePlayerViewController,这就是为什么我使用另一个视图控制器。 – hpique 2010-05-11 18:20:22

+0

我发现了一个使用标签栏控制器委托来创建MPMoviePlayerViewController的视图。谢谢! – hpique 2010-05-16 20:40:09