一、不可变轨道片段AVAssetTrackSegment
AVAssetTrackSegment 继承自NSObject
,AVAssetTrack
的一个片段,包括从源到资产轨道时间轴的时间映射。
只读属性 | 数据类型 | 描述 |
---|---|---|
timeMapping |
CMTimeMapping |
片段所呈现的媒体的容器文件的轨道的时间范围 |
empty |
BOOL |
如果该片段是空的,则为YES,否则为NO。 |
二、可变轨道片段AVCompositionTrackSegment
AVCompositionTrackSegment 继承自AVAssetTrackSegment
,AVAssetTrack
的一个片段,由URL,轨道标识符和从源轨道到合成轨道的时间映射组成。通常使用这个类将组合的低级表示形式保存到选择的存储格式中,并从存储中重新构造它们。
1、创建片段
1.1、指定目标时间范围
返回表示空轨道段的合成轨道段。
+ (instancetype)compositionTrackSegmentWithTimeRange:(CMTimeRange)timeRange;
- (instancetype)initWithTimeRange:(CMTimeRange)timeRange;
- 参数
timeRange
:空AVCompositionTrack
片段的时间范围。 - 返回值:表示空轨道段的合成轨道段。
此方法相当于调用-initWithURL:trackID:sourceTimeRange:targetTimeRange:
,其中参数URL
为nil
,参数trackID
为kCMPersistentTrackID_Invalid
,参数sourceTimeRange.start
和sourceTimeRange.duration
的时间映射等于kCMTimeInvalid
,目标时间范围targetTimeRange
等于timeRange
。这是空轨道段的标准低级表示。
1.2、指定URL
返回合成轨道段,该段显示给定URL
引用的文件的一部分。
+ (instancetype)compositionTrackSegmentWithURL:(NSURL *)URL
trackID:(CMPersistentTrackID)trackID
sourceTimeRange:(CMTimeRange)sourceTimeRange
targetTimeRange:(CMTimeRange)targetTimeRange;
- (instancetype)initWithURL:(NSURL *)URL
trackID:(CMPersistentTrackID)trackID
sourceTimeRange:(CMTimeRange)sourceTimeRange
targetTimeRange:(CMTimeRange)targetTimeRange;
- 参数
URL
:引用要由轨道段呈现的容器文件的URL
。 - 参数
trackID
:轨道标识符,指定要由轨道段呈现的容器文件的轨道。 - 参数
sourceTimeRange
:轨道段要呈现的容器文件轨道的时间范围。 - 参数
targetTimeRange
:合成轨道的时间范围,在此期间将呈现轨道段。 - 返回值:一个轨道段,显示
URL
引用的文件的一部分。
要指定以asset
的正常速率播放片段,在时间映射中设置sourceTimeRange.duration
等于 targetTimeRange.duration
。否则,该段将以等于sourceTimeRange.duration/targetTimeRange.duration
的比率播放。
2、获取片段属性
只读属性 | 数据类型 | 描述 |
---|---|---|
sourceURL |
NSURL |
由轨道片段呈现的媒体的容器文件。 |
sourceTrackID |
CMPersistentTrackID |
由轨道片段呈现的媒体的容器文件的TrackID 。 |
empty |
BOOL |
指示片段是否为空;空片段有一个有效的目标时间范围,但是sourceURL 是nil ,源开始时间是kCMTimeInvalid ;所有其他字段都未定义。 |
网友评论