MediaPlayer播放视频

2016-07-09  本文已影响333人  e85a0a8a9ba4
  1. 导入MediaPlayer跟AVKit框架
#import <MediaPlayer/MediaPlayer.h>
#import <AVKit/AVKit.h>
  1. 定义通知事件
//检测视频播放完毕 --> 可以连续播放视频
    
    //注册通知监测视频播放完毕

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackDidFinishNotification:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];
#pragma mark 通知绑定的方法
- (void)moviePlayerPlaybackDidFinishNotification:(NSNotification *)notification
{
    /**
     MPMovieFinishReasonPlaybackEnded,  播放结束
     MPMovieFinishReasonPlaybackError,  播放错误
     MPMovieFinishReasonUserExited      退出播放
     */
    
    //1. 获取通知结束的状态
    NSInteger movieFinishKey = [notification.userInfo[MPMoviePlayerPlaybackDidFinishReasonUserInfoKey] integerValue];
    
    //2. 根据状态不同来自行填写逻辑代码
    switch (movieFinishKey) {
        case MPMovieFinishReasonPlaybackEnded:
            NSLog(@"播放结束");
            
            // 进行视频切换 需要两步
            
            //1. 要想换视频, 就需要更换地址
            self.mpC.contentURL = [[NSBundle mainBundle] URLForResource:@"Alizee_La_Isla_Bonita.mp4" withExtension:nil];
            
            // 
            [self.mpC play];
            
            break;
            
        case MPMovieFinishReasonPlaybackError:
            NSLog(@"播放错误");
            break;
            
        case MPMovieFinishReasonUserExited:
            NSLog(@"退出播放");
            
            // 如果是不带view的播放器, 那么播放完毕(退出/错误/结束)都应该退出
            [self.mpC.view removeFromSuperview];
            break;
            
        default:
            break;
    }
    
}
- (void)dealloc
{
    //移除通知
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

3.1 不带View的播放器的控制器

// 不带View的播放器的控制器 --> 需要强引用, 设置frame, 添加到view上, 开始播放
    //1. 获取URL地址
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"Cupid_高清.mp4" withExtension:nil];
    
    //2. 创建不带View的播放器
    self.mpC = [[MPMoviePlayerController alloc] initWithContentURL:url];
    
    //3. 设置view.frame
    self.mpC.view.frame = CGRectMake(0, 0, 300, 400);
    
    //4. 添加到view上
    [self.view addSubview:self.mpC.view];
    
    //5. 准备播放 --> 规范写法, 要写上. 调用play方法时, 会自动调用此方法
    [self.mpC prepareToPlay];
    
    //6. 开始播放
    [self.mpC play];
    
    //7. 控制模式
    self.mpC.controlStyle = MPMovieControlStyleFullscreen;
    
    /**
     MPMovieControlStyleNone,       // No controls
     MPMovieControlStyleEmbedded,   // 嵌入式的控制 -- 默认
     MPMovieControlStyleFullscreen, // 全屏时的控制样式
     */

3.2 带View的播放器控制器

// 带View的播放器的控制器
    
    //1. 获取URL地址
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"Cupid_高清.mp4" withExtension:nil];
    
    //2. 创建带View的播放器
    MPMoviePlayerViewController *mpVC = [[MPMoviePlayerViewController alloc] initWithContentURL:url];
    
    //3. 模态视图弹出 --> 模态视图的切换应该在View完全展示之后进行
    [self presentViewController:mpVC animated:YES completion:nil];
上一篇下一篇

猜你喜欢

热点阅读