2013-07-11 31 views
0

去除這裏是我的代碼MPMoviePlayerController.view沒有從上海華

- (void)viewDidLoad 
{ 
... 
NSString *filepath = [[NSBundle mainBundle] pathForResource:@"movie" ofType:@"mov"]; 
NSURL *fileURL = [NSURL fileURLWithPath:filepath]; 
_moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
[self.view addSubview:_moviePlayerController.view]; 
_moviePlayerController.fullscreen = YES; 
_moviePlayerController.scalingMode = MPMovieScalingModeAspectFit; 
_moviePlayerController.controlStyle=MPMovieControlStyleDefault; 
[_moviePlayerController play]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(movieIsOver:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:nil]; 
} 

- (void)movieIsOver:(NSNotification *)notification 
{ 
    NSLog(@"movie is over"); 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    [self.moviePlayerController.view removeFromSuperview];//moviePlayerController is MPMoviePlayerController 
} 

當影片播放到結束,我不能看到「電影是在」日誌和moviePlayerController.view不除去。我不知道爲什麼。

編輯: MPMoviePlayerPlaybackDidFinishNotification工作well.I看 「電影是在」 log.The問題moviePlayerController.view不會被刪除。

+0

請張貼用於啓動電影播放 – Stavash

+0

@Stavash我發佈的代碼。 –

+0

你是如何定義'moviePlayerController'的?在通知回調中,您是否檢查過控制器和視圖引用是否有效? – Wain

回答

1

我找到了解決方案:加

_moviePlayerController.fullscreen = NO; 

從上海華盈刪除視圖

0

而不是增加_moviePlayerController.view作爲子視圖之前

[self.view addSubview:_moviePlayerController.view]; 

就能呈現_moviePlayerController就像這樣:

[self presentMoviePlayerViewControllerAnimated: _moviePlayerController]; 

和movieIsOver方法,你輕易否定

[self dismissMoviePlayerViewControllerAnimated]; 

我希望它的幫助