2012-05-07 7 views
0

リピートモードで問題が発生しているようです。ビデオは繰り返されません。MPMoviePlayerControllerのリピートモードがviewDidLoadで機能しない

これは私が実装で持っているビデオのためのコードです:

- (void)viewDidLoad{ 

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Space Particle" ofType:@"mp4"]]; 


    MPMoviePlayerViewController *playerController = [[MPMoviePlayerViewController alloc]initWithContentURL:url]; 
    [self presentMoviePlayerViewControllerAnimated:playerController]; 
    [playerController.moviePlayer prepareToPlay]; 
    playerController.moviePlayer.movieSourceType = MPMovieSourceTypeFile; 
    playerController.moviePlayer.controlStyle = MPMovieControlStyleNone; 
    playerController.moviePlayer.scalingMode = MPMovieScalingModeAspectFill; 
    playerController.moviePlayer.repeatMode = MPMovieRepeatModeOne; 
    [MyView1 addSubview: playerController.view]; 


    [playerController.moviePlayer play]; 
    [playerController release];playerController=nil; 
} 

それはそれ以上のボタンを持つアニメーションの背景として機能します。ビデオは再生されますが、終了すると繰り返されません。

IbActionとして繰り返されますが、viewDidLoadとしてはそうではありません。

「MyView」コンセントはカスタムUIButtonにリンクされており、ムービーが再生されるボタンビューにあります。

私が使用しているビデオのサイズは大きくありません。

私の目的は、自動的に再生して繰り返すために、ムービーはviewdidloadメソッドを使用して繰り返さなければならないということです。

私が間違っていることはありますか?それを解決する方法の提案?どんな助けもありがとう。

+0

あなたはこのタイプの同じ質問のための私の答えを見てみることができます[ここ](http://stackoverflow.com/a/18710826/2695503) –

答えて

0

同じ問題。

+0

私は本当に本当に本当にあなたの助けに感謝します。 – miqueas1234567

+0

しかし、ループするビデオが必要です(終了後に自動的に繰り返します) – miqueas1234567

+0

また、そのコードの使用方法もわかりません – miqueas1234567

6

コードを以下試しmoviePlayBackDidFinished方法で手動再生を開始)

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlayBackDidFinished:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:self.moviePlayer]; 

2端再生通知を購読) 1:私は次のステップでそれを解決しました。これは完全に機能しています。

NSURL *fileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Video" ofType:@"mp4"]]; 
    MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:fileUrl]; 
    [moviePlayerController.moviePlayer prepareToPlay]; 
    [moviePlayerController.moviePlayer setRepeatMode:MPMovieRepeatModeOne]; 
    [moviePlayerController.moviePlayer setControlStyle:MPMovieControlStyleEmbedded]; 
    [self.view addSubview:moviePlayerController.view]; 
2

viewDidLoad機能が終了した後、ARCによって削除されました。 MPMoviePlayerControllerインスタンスは、クラスメンバとして保持する必要があります。 NSNotificationはオブジェクトを保持するため、問題を解決します。それをインスタンス変数にすると、通知ソリューションが冗長になります。

+0

ありがとうございました!私は答えのために全部狩りをしていた。 –