在视频播放方面,可以使用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的使用相关推荐

  1. 视频播放–AVPlayer

    视频播放–AVPlayer 能播放本地.远程的音频.视频文件 基于Layer显示,需要自己编写控制面板 #import <AVFoundation/AVFoundation.h>-(AVP ...

  2. iOS 视频播放(AVPlayer)

    文章目录一.AVPlayer1.简介2.视频播放的解决方案二.AVPlayer中的MVC1.v层 :AVPlayerLayer2.m层 :AVPlayerItem3.c层 :AVPlayer三.实现简 ...

  3. iOS音视频播放-AVPlayer简单使用

    按公司需求需要对音频文件进行后台播放,借此机会对音频播放做了个总结.主要针对 AVPlayer 进行详细说明. iOS 各播放器比较 名称 使用环境 优点 确点 System Sound Servic ...

  4. iOS 视频播放 - AVPlayer

    iOS实现视频播放,原生代码播放视频更多的使用AVPlayer和AVPlayerViewController进行播放. 其中, AVPlayer不能单独进行播放,仅使用AVPLayer的话,还需要将其 ...

  5. 简单视频播放AVPlayer和AVPlayerViewController

    NSURL *url = [NSURL URLWithString:@"http://flv3.bn.netease.com/videolib3/1712/13/ouwHf3421/SD/o ...

  6. iOS 视频播放(AVPlayer、MPMoviePlayerController、MPMoviePlayerViewController 区别)

    //联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 一.AVPlayer介绍  1.能播放本地.远程的音频.视频文件 2.基于Layer显示,得自己去编写控制面板 3.AVPlayer ...

  7. iOS 视频播放 AVPlayer 循环播放 闪屏

    问题终于解决,选用AVPlayer,重置一下AVPlayerItem就不会出现闪屏现象,注册一个通知同样可以实现循环播放,而且AVPlayer可以自定义播放样式,给了我们更大的发挥空间,完全可以自己D ...

  8. [绍棠] iOS视频播放AVPlayer的视频内容拉伸设置

    使用其中一个叫 videoGravity 的属性,默认设置了AVLayerVideoGravityResize,查看该属性以及相关的其他属性值发现有3种值可以设置, AVLayerVideoGravi ...

  9. IOS音视频(一)AVFoundation核心类

    IOS音视频(一)AVFoundation核心类 1. AVFoundation框架架构简介 1.1 AVFoundation框架 1.2 AVFoundation 之 Assets 1.3 AVFo ...

最新文章

  1. LeetCode-滑动窗口-209. 长度最小的子数组
  2. java读取pi_(树莓派csi相机)使用Java从raspivid-stdout读取h...
  3. 【Servlet】Servlet的多线程并发情况
  4. 分布式、微服务与集群的区别
  5. Spring Boot入门(7)-单元测试
  6. 来自TMDB的5000部电影数据集
  7. 汉印HPRT XT130 打印机驱动
  8. java练习题,个人所得税计算
  9. xmlhttp.readyState的值及解释
  10. Hexo Next 5.x 升级 6.x
  11. vue3+vite中显示img图片,显示不出来问题。
  12. Win10一周年更新正式版安装方法大全
  13. 穆穆推荐-软件销售行业软件公司销售参考操作手册-之2-软件公司销售团队的组建及岗位分类
  14. AT88S153工作原理与应用
  15. 组成原理(五)CPU指令流水线
  16. 99. 激光炸弹(前缀和)
  17. Android KK(4.4) 以太网和DHCP启动过程介绍
  18. Specify @BootstrapWith's 'value' attribute or make the default bootstrapper class available.
  19. 京东视觉算法部招聘CV实习生
  20. 高斯分布的各阶中心距和原点矩超强总结

热门文章

  1. 美团2016招聘笔试:奇数位丢弃
  2. IEEE802.16e 协议中LDPC编解码原理说明
  3. 微信小程序如何返回到上一个页面,并刷新页面呢?
  4. 司创电梯发卡软件_防复制电梯IC卡系统上位机管理软件设计
  5. java 七巧板油漆问题_《七巧板中的分数问题》评课稿
  6. Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)
  7. mysql第五次作业 查询数据
  8. 视频关键帧inceptionV3Xception特征提取
  9. Linux常用命令——rm命令
  10. 互联网最后一个绯闻女友出嫁 大众点评联姻腾讯