Asset的表示
AVAsset是AVFoundation框架中的核心的类,它提供了基于时间的音视频数据.(如电影文件,视频流),一个asset包含很多轨道的结合,如audio, video, text, closed captions, subtitles...
AVMetadataItem:提供了一个asset相关的所有资源信息.
AVAssetTrack: 一个轨道可以代表一个音频轨道或视频轨道
AVAsset代表了一种基于时间的音视频数据的抽象类型,其结构决定了很多框架的工作原理.AVFoundation中一些用于代表时间与媒体数据的sample buffer来自Core Media框架.


使用异步查询资源的属性
- (AVKeyValueStatus)statusOfValueForKey:(NSString *)key error:(NSError * _Nullable * _Nullable)outError;查询一个给定属性的状态,该方法会返回一个枚举值,用于表示当前所请求的属性的状态
- (void)loadValuesAsynchronouslyForKeys:(NSArray<NSString *> *)keys completionHandler:(nullable void (^)(void))handler;异步载入一个给定的属性
媒体元数据
在Apple 环境下遇到的媒体数据类型主要有四种,分别是:Quicktime(mov)、MPEG-4 Video(mp4和m4v)、MPEG-4 audio(m4a)和MPEG-Layer audio(mp3)。
AVAsset和AVAssetTrack 都可以实现查询相关数据的功能。
AVAsset和AVAssetTrack 提供了两种方法获取相关的元数据。AVFoundation使用键空间作为将相关键组合在一起的方法,可以实现对AVMetadataItem实例集合的筛选。每个资源至少包含两个键空间,供从中获取元数据。
Common 键空间用来定义所有支持的媒体类型的键.
AVMetadataItem最基本的形式其实是封装一个键值对的封装器。可通过它查询key或commonKey,查询是否存在于common键空间中,最重要的是它对应的value。
网友评论