iOS 基于AVPlayer自定义视频播放器

前言:视频播放是一个很常见的功能,系统自带的有三种播放器 MPMoviePlayerController、AVPlayerViewController、AVPlayer。但是MPMoviePlayerController 在iOS9以后被弃用,AVPlayerViewController 只能用于iOS8以后,所以使用AVFoundation框架中的AVPlayer来自定义视频播放器是很多项目的选择。我封装的LYAVPlayer只需几行代码就可以实现视频播放的功能:

         LYAVPlayerView *playerView =[LYAVPlayerView alloc]init];         
         playerView.frame =CGRectMake(0, 64, ScreenWidth,200);
         playerView.delegate =self;//设置代理
         [self.view addSubview:playerView];
         [playerView setURL:[NSURL URLWithString:VideoURL]];//设置播放的URL
         [playerView play];//开始播放
复制代码

一、开放的属性和方法 1.AVPlayer本身并不显示视频!需要一个AVPlayerLayer播放层来显示视频,然后添加到父视图的layer中。 2.AVPlayer只负责视频管理和调控,而视频资源是由AVPlayerItem提供的,每个AVPlayerItem对应一个视频地址。

二、代理方法

/**AVPlayerItem的三种状态

*AVPlayerItemStatusUnknown,

*AVPlayerItemStatusReadyToPlay,

*AVPlayerItemStatusFailed

*/

//所有的代理方法均已回到主线程 可直接刷新UI

// 可播放/播放中

- (void)videoPlayerIsReadyToPlayVideo:(LYAVPlayerView *)playerView;

//播放完毕

- (void)videoPlayerDidReachEnd:(LYAVPlayerView *)playerView;

//当前播放时间

- (void)videoPlayer:(LYAVPlayerView *)playerView timeDidChange:(CGFloat )time;

//duration 当前缓冲的长度

- (void)videoPlayer:(LYAVPlayerView *)playerView loadedTimeRangeDidChange:(CGFloat )duration;

//进行跳转后没数据 即播放卡顿

- (void)videoPlayerPlaybackBufferEmpty:(LYAVPlayerView *)playerView;

// 进行跳转后有数据 能够继续播放

- (void)videoPlayerPlaybackLikelyToKeepUp:(LYAVPlayerView *)playerView;

//加载失败

- (void)videoPlayer:(LYAVPlayerView *)playerView didFailWithError:(NSError *)error;
复制代码

GitHub源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值