视频播放AVPlayer的使用
在视频播放方面,可以使用MPMoviePlayerController,但是如果需要高度自定义视频播放的时候,就需要使用AVPlayer,AVPlayer属于AVFoundation框架,AVPlayer自己不能播放视频,如果想播放视频,需要创建一个AVPlayerLayer,继承于CALayer, 然后将AVPlayerLayer添加到view的layer属性上。
AVPlayer中涉及到的类有:
(1)AVAsset:是一个抽象类,主要用于获取多媒体信息,不能直接使用。
(2)AVURLAsset:AVAsset的子类,可以根据一个URL路径创建一个包含媒体信息的AVURLAsset对象。
(3)AVPlayerItem:一个媒体资源管理对象,管理者视频的一些基本信息和状态,一个AVPlayerItem对应着一个视频资源。
有两个功能:播放和暂停,对应着AVPlayer的两个方法,pause和play。AVPlayer 不能判断当前视频是否在播放,可以通过视频播放的速度来判断视频的播放状态:输赢rate如果为0表明是停止,为1表明视频正常播放。
1:如果想要获得视频的播放进度:播放网络视频的时候,需要获得视频的加载和缓冲信息,AVPlayer中的属性currentItem表示当前播放的视频对象,属于AVPlayerItem类型的,可以通过KVO来监控currentItem的 status 和 loadedTimeRanges属性来获得。
status属性为AVPlayerStatusReadyToPlay说明正在播放,处于这个状态才能获得视频时长等信息
loadedTimeRanges属性改变时可以获得本次缓冲加载的视频范围(起始时间和本次加载时长),可以获得实时的缓冲情况
2:获取播放进度:通过AVPlayer的获得播发进度,- (id)addPeriodicTimeObserverForInterval:(CMTime)interval queue:(dispatch_queue_t)queue usingBlock:(void (^)(CMTime time)),此代理方法会在设定的时间间隔,定时更新播放进度,通过block的参数time获得
3: 获得视频播放结束,播放完成之后会有通知:AVPlayerItemDidPlayToEndTimeNotification,可以监听此通知
AVPlayer虽然播放视频很强大,但是支持的视频编码格式只有:H.264、MPEG-4,扩展名(压缩格式):.mp4、.mov、.m4v、.m2v、.3gp、.3g2等。如果想支持更多的视频编码格式,可以使用使用第三方的框架,常用的视频编码和解码框架有VLC和ffmpeg。
视频播放AVPlayer的使用相关推荐
- 视频播放–AVPlayer
视频播放–AVPlayer 能播放本地.远程的音频.视频文件 基于Layer显示,需要自己编写控制面板 #import <AVFoundation/AVFoundation.h>-(AVP ...
- iOS 视频播放(AVPlayer)
文章目录一.AVPlayer1.简介2.视频播放的解决方案二.AVPlayer中的MVC1.v层 :AVPlayerLayer2.m层 :AVPlayerItem3.c层 :AVPlayer三.实现简 ...
- iOS音视频播放-AVPlayer简单使用
按公司需求需要对音频文件进行后台播放,借此机会对音频播放做了个总结.主要针对 AVPlayer 进行详细说明. iOS 各播放器比较 名称 使用环境 优点 确点 System Sound Servic ...
- iOS 视频播放 - AVPlayer
iOS实现视频播放,原生代码播放视频更多的使用AVPlayer和AVPlayerViewController进行播放. 其中, AVPlayer不能单独进行播放,仅使用AVPLayer的话,还需要将其 ...
- 简单视频播放AVPlayer和AVPlayerViewController
NSURL *url = [NSURL URLWithString:@"http://flv3.bn.netease.com/videolib3/1712/13/ouwHf3421/SD/o ...
- iOS 视频播放(AVPlayer、MPMoviePlayerController、MPMoviePlayerViewController 区别)
//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄 一.AVPlayer介绍 1.能播放本地.远程的音频.视频文件 2.基于Layer显示,得自己去编写控制面板 3.AVPlayer ...
- iOS 视频播放 AVPlayer 循环播放 闪屏
问题终于解决,选用AVPlayer,重置一下AVPlayerItem就不会出现闪屏现象,注册一个通知同样可以实现循环播放,而且AVPlayer可以自定义播放样式,给了我们更大的发挥空间,完全可以自己D ...
- [绍棠] iOS视频播放AVPlayer的视频内容拉伸设置
使用其中一个叫 videoGravity 的属性,默认设置了AVLayerVideoGravityResize,查看该属性以及相关的其他属性值发现有3种值可以设置, AVLayerVideoGravi ...
- IOS音视频(一)AVFoundation核心类
IOS音视频(一)AVFoundation核心类 1. AVFoundation框架架构简介 1.1 AVFoundation框架 1.2 AVFoundation 之 Assets 1.3 AVFo ...
最新文章
- LeetCode-滑动窗口-209. 长度最小的子数组
- java读取pi_(树莓派csi相机)使用Java从raspivid-stdout读取h...
- 【Servlet】Servlet的多线程并发情况
- 分布式、微服务与集群的区别
- Spring Boot入门(7)-单元测试
- 来自TMDB的5000部电影数据集
- 汉印HPRT XT130 打印机驱动
- java练习题,个人所得税计算
- xmlhttp.readyState的值及解释
- Hexo Next 5.x 升级 6.x
- vue3+vite中显示img图片,显示不出来问题。
- Win10一周年更新正式版安装方法大全
- 穆穆推荐-软件销售行业软件公司销售参考操作手册-之2-软件公司销售团队的组建及岗位分类
- AT88S153工作原理与应用
- 组成原理(五)CPU指令流水线
- 99. 激光炸弹(前缀和)
- Android KK(4.4) 以太网和DHCP启动过程介绍
- Specify @BootstrapWith's 'value' attribute or make the default bootstrapper class available.
- 京东视觉算法部招聘CV实习生
- 高斯分布的各阶中心距和原点矩超强总结