2012-08-22 65 views
0

我使用這個代碼與MediaPlayer的框架,以播放視頻:iOS版 - 播放多個視頻

-(void)GrommeVideoExcerpt1 
{ 
NSURL *url1 = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
            pathForResource:@"GrommeVideoExcerpt1" ofType:@"mp4"]]; 
grommePlayer1 = [[MPMoviePlayerController alloc] 
        initWithContentURL:url1]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:grommePlayer1]; 

grommePlayer1.controlStyle = MPMovieControlStyleDefault; 
grommePlayer1.shouldAutoplay = YES; 
[self.view addSubview:grommePlayer1.view]; 
[grommePlayer1 setFullscreen:YES animated:YES]; 
} 

但是,當我打一個視頻,然後導航到另一個視頻,努力發揮吧,應用程序崩潰。它給我這個錯誤:

http://pastebin.com/nUGLXEAi

+0

能否請您添加'moviePlayBackDidFinish :'方法。 – ohr

+0

在接下來的教程中,沒有像這樣的方法,我將如何實現這一點? – Alan

+0

看看這裏:http://stackoverflow.com/questions/1548492/why-is-it-not-possible-to-use-the-mpmovieplayercontroller-more-than-once –

回答

0

這裏的問題是要添加在視頻播放完畢的通知,並且該通知觸發你沒有導致崩潰的方法(moviePlayBackDidFinish:)。

您可以實現此方法或刪除通知,取決於你想要的視頻播放完畢即刪除播放視頻的viewController後做什麼,等

//Register notification 
[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(moviePlayBackDidFinish:) 
             name:MPMoviePlayerPlaybackDidFinishNotification 
             object:nil]; 
//Then the method ... 
-(void) moviePlaybackDidFinish:(NSNotification *)aNotification{ 
    [grommePlayer1.view removeFromSuperview]; 
    grommePlayer1 = nil; 
} 
+0

我想回到以前的觀點時它播放視頻完成後,我將如何去做這件事? – Alan

+0

更新我的答案,希望它有幫助。 – ohr

+0

謝謝!對此,我真的非常感激。 – Alan