/**
* iOS中视频播放 可以使用AVPlayer
AVPlayer:不仅可以播放音频,还可播放视频;支持播放网络音频.
AVAudioPlayer:支持本地音频播放
*/
– (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//获取播放网址
NSURL *url = [NSURL URLWithString:@”http://video.weibo.com/show?fid=1034:c2b460554bd8334dcefa9ad4e03a8c79″];
/*AVPlayerItem 可以获取视频的信息,如播放当前时长,总时长等等
状态 status属性:
AVPlayerItemStatusUnknown, 播放器未知问题
AVPlayerItemStatusReadyToPlay, 代表可以播放 可以调用play
AVPlayerItemStatusFailed 代表视频无法播放
loadedTimeRanges: 已缓存的进度
监测该属性 展示更新UI上的缓存进度.
*/
//根据网址创建AVPlayerItem
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url];
playerItem.status;
playerItem.loadedTimeRanges;
//监听item的status属性 KVO
[playerItem addObserver:self forKeyPath:@”status” options:NSKeyValueObservingOptionNew context:nil];
//创建播放器对象
_player = [AVPlayer playerWithPlayerItem:playerItem];
/**
* 单独使用AVPlayer时无法显示视频的(该类并非真正的视图)
需要将视图层添加到AVPlayerLayer中
最后将layer添加到父视图的layer上.
*/
//1.创建 AVPlayerLayer对象
AVPlayerLayer *layer = [AVPlayerLayer playerLayerWithPlayer:_player];
//2.设置对应属性
//设置视图层的frame
layer.frame = CGRectMake(30, 200, self.view.bounds.size.width – 60, 300);
//设置背景色
layer.backgroundColor = [UIColor blackColor].CGColor;
//设置图层的填充方式:
/** AVLayerVideoGravityResize 视频会被拉伸填充播放界面的边界
* AVLayerVideoGravityResizeAspect (默认)保持视频的宽高比,且自动适应播放界面的边界.
* AVLayerVideoGravityResizeAspectFill 保持视频的宽高比,填充图层的边界.
*/
layer.videoGravity = AVLayerVideoGravityResizeAspect;
//添加到播放界面的layer层
[self.view.layer addSublayer:layer];
}
– (IBAction)handlePlay:(id)sender {
[self.player play];
}
– (IBAction)handlePause:(id)sender {
[self.player pause];
}
#pragma KVO 回调方法
//监听对象的status属性发生变化时的回调方法
– (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id> *)change context:(void *)context{
NSLog(@”%@ %@”,object,change);
//获取播放的资源对象
AVPlayerItem *item = object;
//代表可以播放了
if (item.status == AVPlayerStatusReadyToPlay) {
//获取总时长 duration (CMTime类型)
/*CMTime
value:一共多少帧
timescale:每秒多少帧
*/
float total = item.duration.value / item.duration.timescale;
NSLog(@”%f”,total);
}
}
今天的文章视频 AVPlayer分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/54884.html