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是电视机屏幕。

目录
相关文章
|
API 前端开发 Python
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
590 0
【鸿蒙软件开发】ArkTS基础组件之Rating(评分组件)、RichText(富文本显示)
|
定位技术 API 开发工具
AppsFlyer 研究(七) 非GPS设备用户归因解决方案
AppsFlyer 研究(七) 非GPS设备用户归因解决方案
586 0
|
搜索推荐 Android开发 iOS开发
AppsFlyer 研究(四)OneLink Deep Linking Guide
AppsFlyer 研究(四)OneLink Deep Linking Guide
890 0
|
存储 缓存 开发工具
AppsFlyer 研究(五)延迟深度链接&客户端获取归因数据
AppsFlyer 研究(五)延迟深度链接&客户端获取归因数据
1136 0
|
7月前
|
Android开发 开发者 Kotlin
Android实战经验之Kotlin中快速实现MVI架构
MVI架构通过单向数据流和不可变状态,提供了一种清晰、可预测的状态管理方式。在Kotlin中实现MVI架构,不仅提高了代码的可维护性和可测试性,还能更好地应对复杂的UI交互和状态管理。通过本文的介绍,希望开发者能够掌握MVI架构的核心思想,并在实际项目中灵活应用。
310 8
|
9月前
|
人工智能 自然语言处理 算法
AI时代的企业内训全景图:从案例到实战
作为一名扎根在HR培训领域多年的“老兵”,我越来越清晰地感受到,企业内训的本质其实是为企业持续“造血”。无论是基础岗的新人培训、技能岗的操作规范培训,还是面向技术中坚力量的高阶技术研讨,抑或是管理层的战略思维提升课,内训的价值都是在帮助企业内部提升能力水平,进而提高组织生产力,减少对外部资源的依赖。更为重要的是,在当前AI、大模型、Embodied Intelligence等新兴技术快速迭代的背景下,企业必须不断为人才升级赋能,才能在市场竞争中保持领先。
1039 13
|
存储 Swift
大师学SwiftUI第18章Part3 - 自定义视频播放器
录制和播放视频对用户来说和拍照、显示图片一样重要。和图片一样,Apple框架中内置了播放视频和创建自定义播放器的工具。
521 0
|
域名解析 网络协议 安全
DNS劫持
【8月更文挑战第19天】
1812 3
|
12月前
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
971 0
|
JavaScript 索引
Component name “index“ should always be multi-word vue/multi-word-component-names
Component name “index“ should always be multi-word vue/multi-word-component-names