前言
从本文开始逐渐学习iOS自带的多媒体处理框架,例如AVFoundation,VideoToolbox,CoreMedia,CoreVideo实现多媒体的处理,并且将实现方式以及效果和ffmpeg的方式做对比
AVPlayer是AVFoundation中封装的一个用来渲染音视频的播放器,它可以播放本地的音视频文件,也可以播放远程的音视频文件,同时它对基于HLS协议的在线音视频也很好的支持,功能还是很强大的,
本文的目的:
1、熟悉AVFoundation中关于AVPlayer接口的使用,使用这些接口实现播放一个音视频文件
播放相关流程
image.png
上图介绍了AVFoundation框架中关于播放音视频文件的相关的对象关系图,可以看到使用AVPlayer播放音视频还是相对比较简单的。播放远程和本地文件流程一样,远程文件可能需要考虑网络抖动等等异常情况
相关对象及函数介绍
- 1、AVPlayer
实现播放控制的相关对象,用于管理播放的开始,结束等等操作,它使用AVPlayerItem作为输入
-
2、AVPlayerItem
它以AVAURLAsset作为输入来初始化对象,代表着要播放的对象,通过和AVPlayer配合,实现对本地远程及基于HLS协议的远程文件的解析 -
3、AVPlayerLayer
用于渲染由AVPlayer提供的