【问题标题】:How to stop MPMoviePlayerViewController from the beginning如何从一开始就停止 MPMoviePlayerViewController
【发布时间】:2016-04-26 02:01:08
【问题描述】:

我想在 iOS 应用程序中转到下一个 ViewController 时播放电影。

这条线是我写的。

 NSURL *filePath = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"movie10" ofType:@"mp4"]];

    MPMPlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:filePath ];
    MPMPlayerController.moviePlayer.backgroundView.backgroundColor = [UIColor clearColor];
    MPMPlayerController.moviePlayer.controlStyle = MPMovieControlStyleNone;
    //MPMPlayerController.view.frame = self.view.frame;
    MPMPlayerController.view.frame = CGRectMake(0, 0, 320, 600);

    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(splashMoviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:nil];

    [[NSNotificationCenter defaultCenter] removeObserver:MPMPlayerController
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:MPMPlayerController.moviePlayer];

    MPMPlayerController.moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
    [MPMPlayerController.moviePlayer setFullscreen:YES animated:NO];

    [self.view addSubview:MPMPlayerController.view];

    [MPMPlayerController.moviePlayer pause];


- (void)splashMoviePlayBackDidFinish:(NSNotification *)notification
{
    UIView *fadeView = [[UIView alloc]initWithFrame:self.view.frame];
    fadeView.backgroundColor = [UIColor blackColor];
    fadeView.alpha = 0.0f;
    [self.view addSubview:fadeView];

    // Fadeout & remove
    [UIView animateWithDuration:0.5f
                     animations:^{
                         fadeView.alpha = 1.0;
                     }
                     completion:^(BOOL finished){
                         [fadeView removeFromSuperview];

                         [[NSNotificationCenter defaultCenter] removeObserver:self];
                         [MPMPlayerController.view removeFromSuperview];
                     }];
}


-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ((MPMPlayerController.moviePlayer.playbackState==MPMoviePlaybackStateStopped)||(MPMPlayerController.moviePlayer.playbackState==MPMoviePlaybackStatePaused))
    {
        [MPMPlayerController.moviePlayer play];
    }
    else
    {
        [MPMPlayerController.moviePlayer pause];
    }
}

但是当 ViewController 出现并从头开始播放时,电影并没有停止(暂停)。 (当我触摸视图时,电影暂停。一旦我触摸那里,电影再次播放)

我应该怎么做才能从头停止电影?

【问题讨论】:

    标签: ios objective-c mpmovieplayer


    【解决方案1】:

    MPMPlayerController 有默认属性“shouldAutoplay”可用

    代码下方的用户::

    MPMPlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:filePath ];
    MPMPlayerController.moviePlayer.backgroundView.backgroundColor = [UIColor clearColor];
    MPMPlayerController.moviePlayer.controlStyle = MPMovieControlStyleNone;
    //MPMPlayerController.view.frame = self.view.frame;
    MPMPlayerController.view.frame = CGRectMake(0, 0, 320, 600);
    
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(splashMoviePlayBackDidFinish:)
                                                 name:MPMoviePlayerPlaybackDidFinishNotification
                                               object:nil];
    
    [[NSNotificationCenter defaultCenter] removeObserver:MPMPlayerController
                                                    name:MPMoviePlayerPlaybackDidFinishNotification
                                                  object:MPMPlayerController.moviePlayer];
    
    MPMPlayerController.moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
    [MPMPlayerController.moviePlayer setFullscreen:YES animated:NO];
    
    //*** Change
    [MPMPlayerController.moviePlayer setShouldAutoplay:NO]
    //***
    
    [self.view addSubview:MPMPlayerController.view];
    
    [MPMPlayerController.moviePlayer pause];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      相关资源
      最近更新 更多