AVPlayerItem、AVPlayer、AVPlayerLayer三者关系

简介: AVPlayerItem、AVPlayer、AVPlayerLayer三者关系

什么是AVPlayer


AVPlayer存在于AVFoundation框架中,它是一个视频播放器,用来播放视频,但也可以用来播放音乐,播放音乐时不需要实现界面。换句话说,只要掌握了视频播放,音频播放自然就掌握了。

AVPlayerItem:和媒体资源存在对应关系,管理媒体资源的信息和状态。它的初始化需要URL或AVAsset。

AVPlayer:播放器,控制资源的播放和暂停,AVPlayerItem是它的属性,它的初始化需要URL或AVPlayerItem。

+ (instancetype)playerWithURL:(NSURL *)URL;
+ (instancetype)playerWithPlayerItem:(nullable AVPlayerItem *)item;


AVPlayerLayer:播放器图层,用于展示视频内容,AVPlayer是它的属性,它的初始化需要AVPlayer。如果是播放音频,则不需要创建AVPlayerLayer。

+ (AVPlayerLayer *)playerLayerWithPlayer:(nullable AVPlayer *)player


AVPlayerItem、AVPlayer、AVPlayerLayer三者关系,做个类比:

AVPlayerItem是光盘,AVPlayer是dvd影碟机,AVPlayerLayer是电视机屏幕。

目录
打赏
0
0
0
0
5
分享
相关文章
Qt 父子对象的关系
Qt 父子对象的关系
145 0
object c架构,swfit,SwiftUI的关系与架构选择
object c架构,swfit,SwiftUI的关系与架构选择
83 0
|
10月前
|
【C++ 概念区分】C++ 中覆盖,重写,隐藏 三者的区别
【C++ 概念区分】C++ 中覆盖,重写,隐藏 三者的区别
284 0
如何实现 UIViewController 之间的数据传递?
如何实现 UIViewController 之间的数据传递?
81 1
FFMpeg新旧接口之间的一些对应关系
FFMpeg新旧接口之间的一些对应关系
122 0
类之间的关系共为6种关系
类之间的关系共为6种关系
733 0
RXJS组件间超越父子关系的相互通信
RXJS组件间超越父子关系的相互通信 用到这个的需求是这样的: 组件A有数据变化,将变化的数据流通知组件B接收这个数据流并做相应的变化 实例化RXJS的subject对象 import { Injectable } from '@angular/core'; import { Subject }...
1422 0