美文网首页
MPMoviePlayerController播放视频

MPMoviePlayerController播放视频

作者: Ming普 | 来源:发表于2016-07-12 12:04 被阅读796次

    MPMoviePlayerController播放视频步骤:

    1. 准备好视频路径,创建MPMoviePlayerController,即使是本地视频文件,也要生成NSURL路径。
    NSString *file = [[NSBundle mainBundle] pathForResource:@"test_movie" ofType:@"mp4"];  
    NSURL *url = [NSURL fileURLWithPath:file];  
    if (_moviePlayer == nil) {  
       _moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];  
    }else {  
       [_moviePlayer setContentURL:url];  
    }  
    
    1. MPMoviePlayerController各种设置,拉伸、控制模式、循环模式、自动播放等等,自己看着API文档挨个儿试吧,总有一款适合你,最后一步就是别忘了播放呗。
    _moviePlayer.controlStyle = MPMovieControlStyleNone;    
    _moviePlayer.shouldAutoplay = YES;    
    _moviePlayer.repeatMode = MPMovieRepeatModeOne;  
    [_moviePlayer setFullscreen:YES animated:YES];    
    _moviePlayer.scalingMode = MPMovieScalingModeAspectFit;  
           [_moviePlayer play];
    
    1. 在适当的位置开始/停止监听播放状态事件。
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:)    
                                                 name:MPMoviePlayerPlaybackDidFinishNotification    
                                               object:_moviePlayer];   
    

    监听视频播放完成的事件,播放完成将执行moviePlayBackDidFinish方法,在该方法中执行自己想要的操作。
    因为我之前设置了循环播放、而且控制模式也是不可控制,因此播放器上是不会有“完成”按钮的。也就不会正常的通过完成播放来进入这个方法。

    类似的,还可以监听MPMoviePlayerPlaybackStateDidChangeNotification等很多关于播放期间状态改变的事件,可以根据自己的需要去选择。

    别忘了不需要时,记得removeObserver。

    改进应用

    代码改成:

    1. new一个MPMoviePlayerViewController对象,将其view添加到我们自己的viewcontroller里面;

    2. 不需要自己创建MPMoviePlayerController,使用MPMoviePlayerViewController里面的MPMoviePlayerController执行实际的播放操作;

    3. 监听的对象改成2中所述的MPMoviePlayerController就行了。

     // create MPMoviePlayerViewController  
       MPMoviePlayerViewController *playerViewController = [[MPMoviePlayerViewController alloc] initWithContentURL:url];    
       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:)    
                                                    name:MPMoviePlayerPlaybackDidFinishNotification    
                                                  object:[playerViewController moviePlayer]];    
       // add to view  
       [self.view addSubview:playerViewController.view];   
      
       // play movie   
       MPMoviePlayerController *player = [playerViewController moviePlayer];    
    player.controlStyle = MPMovieControlStyleNone;    
    player.shouldAutoplay = YES;    
    player.repeatMode = MPMovieRepeatModeOne;  
    [player setFullscreen:YES animated:YES];    
    player.scalingMode = MPMovieScalingModeAspectFit;  
       [player play];   
    

    这样就ok了。

    当然,自己在viewController里面对手势操作进行捕捉和处理肯定也是没问题的,不过我对这块儿还不是太熟悉,呵呵,当时就走了个捷径。

    手势操作是iOS的特色,也是改进产品用户体验的大趋势,以后我也得好好学学这一块的技术!!!

    相关文章

      网友评论

          本文标题:MPMoviePlayerController播放视频

          本文链接:https://www.haomeiwen.com/subject/qonjjttx.html