对资产所包含的媒体轨道进行建模的对象。
一个 Asset 包含一个或多个媒体轨道,框架使用 AVAssetTrack 类对这些媒体轨道进行建模。轨道对象保存 Asset 提供的统一类型的媒体,例如音频、视频或隐藏字幕。
轨道与其包含它的 AVAsset 一样,在创建时不会加载所有媒体。相反,它会推迟加载数据,直到您执行需要它的操作为止。由于加载数据可能需要一些时间,Asset 轨道采用 AVAsynchronousKeyValueLoading 协议,因此您可以通过调用 load(_:) 方法异步加载其属性值。
- 提供对 AVAsset 的引用,AVAssetTrack 是其中的一部分
@property (nonatomic, readonly, weak) AVAsset *asset;
- 表示资产此轨道的持久唯一标识符
@property (nonatomic, readonly) CMPersistentTrackID trackID;
注意,
取消 AVAssetTrack 所有键的加载请求都必须在父 AVAsset 上进行,例如 [[track.asset] cancellationLoading]
@interface AVAssetTrack (AVAssetTrackBasicPropertiesAndCharacteristics)
- 指示此轨道的媒体类型,例如 AVMediaTypeVideo、AVMediaTypeAudio 等,如 AVMediaFormat.h 中所定义。
@property (nonatomic, readonly) AVMediaType mediaType;
- 提供一个 CMFormatDescriptions 数组
每个 CMFormatDescriptions 指示轨道引用的媒体样本的格式;
如果轨道呈现统一的媒体(例如,根据相同的编码设置进行编码),
将提供一个计数为 1 的数组
@property (nonatomic, readonly) NSArray *formatDescriptions
- 指示接收器是否可以在当前环境中播放;如果是,则可以启用使用接收器资产初始化的 AVPlayerItem 的 AVPlayerItemTrack 进行播放
@property (nonatomic, readonly, getter=isPlayable) BOOL playable
指示接收器在当前环境下是否可解码;如果是,则可以解码该音轨,即使解码速度对于实时播放来说可能太慢。
@property (nonatomic, readonly, getter=isDecodable) BOOL decodable
指示轨道是否根据其容器或构造中存储的状态启用;
请注意,可以通过 AVPlayerItemTrack 更改其呈现状态
@property (nonatomic, readonly, getter=isEnabled) BOOL enabled
指示轨道是否仅在其存储容器内引用样本数据
@property (nonatomic, readonly, getter=isSelfContained) BOOL selfContained
表示该轨道所需的样本数据的总字节数
@property (nonatomic, readonly) long long totalSampleDataLength
@interface AVAssetTrack (AVAssetTrackTemporalProperties)
- 指示轨道在资产整体时间轴内的时间范围;
带有 CMTIME_COMPARE_INLINE(timeRange.start, >, kCMTimeZero) 的轨道最初将显示一个空间隔。
@property (nonatomic, readonly) CMTimeRange timeRange
10 表示可以在其中操作轨道的时间值而无需进行额外的数值转换的时间尺度
@property (nonatomic, readonly) CMTimeScale naturalTimeScale
- 指示轨道引用的媒体数据的估计数据速率,以比特/秒为单位 (bits per second)
@property (nonatomic, readonly) float estimatedDataRate
@interface AVAssetTrack (AVAssetTrackPropertiesForVisualCharacteristic)
- 以 CGSize 表示轨道引用的媒体数据的自然尺寸
对于可视轨道(例如视频轨道或字幕轨道),此属性值为媒体的自然大小。对于非可视轨道(例如音频轨道或章节轨道),此值为零。
@property (nonatomic, readonly) CGSize naturalSize
13 指示轨道存储容器中指定的变换,作为用于显示目的的视觉媒体数据的首选变换;
其值通常(但并非总是)为 CGAffineTransformIdentity
@property (nonatomic, readonly) CGAffineTransform preferredTransform