2010-01-11 124 views
3

我需要有可能在應用中播放多個視頻。MPMoviePlayerController第二次播放視頻

不幸的是,第二次按播放時,視頻閃爍。

我只用這個代碼玩韋迪

NSURL * URL = [[[NSURL頁頭] initFileURLWithPath:[一個NSBundle mainBundle] pathForResource:@ 「電影」 ofType:@ 「M4V」]]自動釋放]。

MPMoviePlayerController * mp = [[MPMoviePlayerController alloc] initWithContentURL:url];

mp.movi​​eControlMode = MPMovieControlModeDefault;

[mp play];

moviePlayer = mp;

[mp釋放];

誰能告訴我哪裏可以解決問題? 在此先感謝!

UPDATE 1:看來,蘋果MoviePlayer示例有同樣的問題。

回答

4

,您還可以通過調用之前的初始播放時間設置爲-1.0做播放功能

mp.initialPlaybackTime = -1.0; 

把這段代碼放在你的播放方法之前調用。

1

我有這個問題,並通過使用通知系統執行回調後MPMoviePlayerController完成播放,並釋放播放器對象在那裏解決它。

添加通知播放影片之前:

NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease]; 

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url]; 

mp.movieControlMode = MPMovieControlModeDefault; 

//***Add this line*** 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp]; 

[mp play]; 

然後添加回調方法,

-(void)myMovieFinished:(NSNotification*)aNotification 
{ 
    MPMoviePlayerController *moviePlayer = [aNotification object]; 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer]; 
    [moviePlayer release]; 
} 
+0

仍然有同樣的問題。 – mxg 2010-01-12 08:44:53

+0

你確定原始的movieplayercontroller沒有被保留在某個地方嗎? – 2010-01-12 14:18:19

0

它接縫,唯一的解決辦法是...使應用程序3.1

0

我也發現了OS 3.1或更高版本的模擬器版本可以玩上運行well.It不會出現blinking.But當我添加

initialPlaybackTime = -1.0 

它也將在OS 3.0上發揮良好。

相關問題