iOS 视频播放

方式1:AVPlayer

iOS 视频播放_第1张图片
AVPlayer.gif

通过AVPlayer播放视频,视频播放样式如上图所示。可以看到没有对视频播放的控制(暂停、播放进度、全屏等操作),只是简单的播放视频。不过可以自己封装成一个视频播放的小Demo,可参考BuzzLightYear23童鞋的这篇 ,在此不再赘述。

代码实现:

声明一个视频播放器属性(别忘了导入头文件


@interface ViewController ()

/** 播放器属性 */
@property (nonatomic, strong) AVPlayer * player;

@end

创建并懒加载视频播放器,保证唯一性

-(AVPlayer *)player
{
    if (_player == nil)
    {
        //获取视频URL(远程、本地视频URL都可以)
        NSURL * url = [NSURL URLWithString:@"http://v1.mukewang.com/19954d8f-e2c2-4c0a-b8c1-a4c826b5ca8b/L.mp4"];
        
        //根据URL创建播放曲目
        AVPlayerItem * item = [AVPlayerItem playerItemWithURL:url];
        
        //将曲目添加到播放器
        _player = [AVPlayer playerWithPlayerItem:item];
        
        //创建一个视频播放图层
        AVPlayerLayer * playLayer = [AVPlayerLayer playerLayerWithPlayer:_player];
        
        //设置视频播放图层的frame(宽高比最好是16:9)
        CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
        playLayer.frame = CGRectMake(0, 200, screenWidth, screenWidth * 9 / 16 );
        
        //将视频播放图层添加到父控件图层
        [self.view.layer addSublayer:playLayer];
    }
    return _player;
}

视频播放控制

//开始播放
- (IBAction)startPlay
{
    [self.player play];
}

//暂停播放
- (IBAction)pausePlay
{
    [self.player pause];
}

方式2: AVPlayerViewController

iOS 视频播放_第2张图片
AVPlayerVC.gif

由于通过AVPlayer播放视频无法控制视频播放,所以可以给AVPlayer包装一个控制器,这样就可以控制视频播放进度,暂停、全屏等操作。其实MPMoviePlayerController和MPMoviePlayerViewController控制器也可以控制视频播放,但在ios9之后都过期了,所以这里只用AVPlayerViewController这个控制器。

代码实现:

声明播放控制器属性
记得导入两个框架的头文件

@interface ViewController ()

/** 播放控制器属性 */
@property (nonatomic, strong) AVPlayerViewController * playerVC;

@end

懒加载视频播放控制器

-(AVPlayerViewController *)playerVC
{
    if (_playerVC == nil)
    {
        //创建一个视频播放控制器
        _playerVC = [[AVPlayerViewController alloc] init];
        
        //获取视频URL(远程、本地视频URL都可以)
        NSURL * url = [NSURL URLWithString:@"视频链接"];
        
        //根据URL创建播放曲目
        AVPlayerItem * item = [AVPlayerItem playerItemWithURL:url];
        
        //创建一个视频播放器
        AVPlayer * player = [AVPlayer playerWithPlayerItem:item];
        
        //创建一个视频播放图层
        AVPlayerLayer * playLayer = [AVPlayerLayer playerLayerWithPlayer:player];
        
        //将视频播放图层添加到父控件图层
        [_playerVC.view.layer addSublayer:playLayer];
        
        //设置视频播放控制器的播放器为player
        _playerVC.player = player;
        
    }
    
    return _playerVC;
}

弹出视频播放的控制器

  [self showViewController:self.playerVC sender:nil];

以上为个人做笔记整理资料,如有错误,希望大神不吝斧正!

你可能感兴趣的:(iOS 视频播放)