iOS中视频播放器的简单封装详解中视频播放器的简单封装详解
前言前言
如果仅仅是播放视频两者的使用都非常简单,但是相比MediaPlayer,AVPlayer对于视频播放的可控制性更强一些,可以通过
自定义的一些控件来实现视频的播放暂停等等。因此这里使用AVPlayer的视频播放。
视频播放器布局视频播放器布局
首先使用xib创建CLAVPlayerView继承UIView用来承载播放器,这样我们在外部使用的时候,直接在控制器View或者Cell上添
加CLAVPlayerView即可,至于播放器播放或者暂停等操作交给CLAVPlayerView来管理。下面来看一下CLAVPlayerView的结
构。
CLAVPlayerView的结构
CLAVPlayerView的布局很简单,重点在于约束的添加和控件层次关系,添加约束只要自己挨个细心添加就没有问题,需要注
意控件的层次关系,从上图中可以看出四个控件是分先后顺序平行添加在CLAVPlayerView上的,要注意他们的层次关系,避
免相互遮挡。
视频播放器实现视频播放器实现
布局完成之后,就是实现播放器功能,我们把播放器功能大致分为四部分来完成
一一. 通过播放按钮实现视频播放。通过播放按钮实现视频播放。
首先CLAVPlayerView加载时需要将播放器layer添加到imageView的layer上,此时蒙版和底部工具条一定都是隐藏的,点击中
间播放按钮,视频开始播放并隐藏播放按钮。因此我们需要在CLAVPlayerView的awakeFromNib方法中,在加载
CLAVPlayerView时对其做一些处理。
1、初始化AVPlayer和AVPlayerLayer,并将AVPlayerLayer添加到imageView的layer上,在layoutSubviews中设置
playerLayer的frame
// 初始化player 和playerLayer
self.player = [[AVPlayer alloc]init];
self.playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
// imageView上添加playerLayer
[self.imageView.layer addSublayer:self.playerLayer];
-(void)layoutSubviews
{
[super layoutSubviews];
self.playerLayer.frame = self.imageView.bounds;
}
2、根据播放视频的url创建AVPlayerItem
NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/resources/videos/minion_02.mp4"];
self.playerItem = [AVPlayerItem playerItemWithURL:url];
3、设置Slider原点以及最大点最小点图片
// 设置Slider
[self.progressSlider setThumbImage:[UIImage imageNamed:@"thumbImage"] forState:UIControlStateNormal];
[self.progressSlider setMaximumTrackImage:[UIImage imageNamed:@"MaximumTrackImage"] forState:UIControlStateNormal];
[self.progressSlider setMinimumTrackImage:[UIImage imageNamed:@"MinimumTrackImage"] forState:UIControlStateNormal];