美文网首页
OC之轨道片段AVAssetTrackSegment

OC之轨道片段AVAssetTrackSegment

作者: 苏沫离 | 来源:发表于2018-10-18 23:06 被阅读0次

一、不可变轨道片段AVAssetTrackSegment

AVAssetTrackSegment 继承自NSObjectAVAssetTrack的一个片段,包括从源到资产轨道时间轴的时间映射。

只读属性 数据类型 描述
timeMapping CMTimeMapping 片段所呈现的媒体的容器文件的轨道的时间范围
empty BOOL 如果该片段是空的,则为YES,否则为NO。

二、可变轨道片段AVCompositionTrackSegment

AVCompositionTrackSegment 继承自AVAssetTrackSegmentAVAssetTrack的一个片段,由URL,轨道标识符和从源轨道到合成轨道的时间映射组成。通常使用这个类将组合的低级表示形式保存到选择的存储格式中,并从存储中重新构造它们。

1、创建片段

1.1、指定目标时间范围

返回表示空轨道段的合成轨道段。

+ (instancetype)compositionTrackSegmentWithTimeRange:(CMTimeRange)timeRange;

- (instancetype)initWithTimeRange:(CMTimeRange)timeRange;
  • 参数timeRange:空AVCompositionTrack片段的时间范围。
  • 返回值:表示空轨道段的合成轨道段。

此方法相当于调用-initWithURL:trackID:sourceTimeRange:targetTimeRange:,其中参数URLnil,参数trackIDkCMPersistentTrackID_Invalid,参数sourceTimeRange.startsourceTimeRange.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 指示片段是否为空;空片段有一个有效的目标时间范围,但是sourceURLnil,源开始时间是kCMTimeInvalid;所有其他字段都未定义。

相关文章

网友评论

      本文标题:OC之轨道片段AVAssetTrackSegment

      本文链接:https://www.haomeiwen.com/subject/firjzftx.html