0

repeatmodeone に問題があるようです: ビデオが繰り返されません。

これは、実装にあるビデオのコードです。

- (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 メソッドを使用して映画を繰り返す必要があることです。

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

4

3 に答える 3

6

次のコードを試してください。これは完全に機能しています。

    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];
于 2013-09-10T06:42:31.893 に答える
2

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

于 2014-03-31T12:58:11.933 に答える