【问题标题】:MPMoviePlayerController repeat mode not working in viewDidLoadMPMoviePlayerController 重复模式在 viewDidLoad 中不起作用
【发布时间】:2012-05-07 21:58:23
【问题描述】:

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 方法重复才能自动播放和重复。

请问,我做错了什么吗?关于如何解决的建议?任何帮助将不胜感激。

【问题讨论】:

  • 对于解决方案,您可以查看我对此类相同问题的回答here

标签: iphone xcode mpmovieplayercontroller repeat viewdidload


【解决方案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 也解决了这个问题,因为它保留了对象。使其成为实例变量将使通知解决方案变得多余。

    【讨论】:

    • 谢谢!我一直在寻找答案。
    【解决方案3】:

    同样的问题。我通过以下步骤解决了它: 1) 订阅结束播放通知

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

    2) 在moviePlayBackDidFinished方法中手动开始播放

    【讨论】:

    • 非常感谢您的帮助。
    • 但我需要循环播放视频(完成后自动重复)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多