AVPlayer
AVPlayer是一个控制器对象,用于对媒体资源的录音播放和时间上的管理。它提供了用来控制播放器上的一些特性的界面,比如播放、暂停、改变播放速度和在播放时间内寻找任何一个时间点的功能。您可以使用AVPlayer播放本地和远程的基于文件的媒体,如QuickTime影片和MP3音频文件,以及使用HTTP视频流的在线直播服务。
概览
注意
AVPlayer是用于播放单个媒体资源。player的实例可以通过重用来播放其它的媒体资源(使用其 replaceCurrentItemWithPlayerItem:方法),但在同一时刻只能管理一个媒体资源。该框架还提供AVPlayer的一个子类,叫做AVQueuePlayer,你可以用它来创建和管理包含了很多媒体资源的队列,让它进行顺序播放。
你需要创建一个AVPlayer的动态实例来播放媒体资源,而这个实例可以在AVPlayerItem中找到。这个对象(AVPlayerItem)管理当前AVPlayer播放的资源的播放进度和播放状态。
AVPlayer和AVPlayerItem是不可见的对象,这意味着只用这两个类无法将媒体资源在屏幕上显示。我们可以使用以下两种主要的方法来在屏幕上显示视频内容:
- AVKit:在iOS和tvOS中使用AVKit框架里面的AVPlayerViewController类或在OS X 中使用AVPlayerView类是显示媒体资源最好的方式。这两个类显示媒体的内容,并带有其它控制的功能,可以给用户带来最全的媒体播放体验。
- AVPlayerLayer:如果需要自定义播放器的界面,可以使用AVFoundation框架提供的核心动画中的一个子类,叫做 AVPlayerLayer。这个Player Layer可以当做是一个视图的背景图层,或者可以直接添加到layer层。不像AVPlayerView和AVPlayerViewController,Player Layer不会显示任何播放控制相关的功能,而仅仅是把内容呈现出来。所以这个播放器的播放、暂停等功能的实现都取决于自己的需求。