美摄SDK For iOS  3.10.1
构造函数 | 属性 | 所有成员列表
NvsTrack类 参考

轨道,容纳片段的实体 更多...

#import <NvsTrack.h>

类 NvsTrack 继承关系图:
NvsObject NvsAudioTrack NvsVideoTrack

构造函数

(int64_t) - changeInPoint:newInPoint:
 修改片段在时间线上的入点.如果clip没有此函数授权返回当前的inpoint,newInpoint如果小于前一个clip的outpoint,直接返回前一个clip的outpoint,如果当前clip是第0个clip,则newInPoint最小为0。此函数内部会根据newinpoint计算出一个新的trimIn,并修改clip的trimIn,如果新的trimIn小于0时会返回trimIn为0时对应的Inpoint值,如果newinpoint大于trimOut则返回trimOut-1对应的inPoint值 更多...
 
(int64_t) - changeOutPoint:newOutPoint:
 修改片段在时间线上的出点,如果clip没有此函数授权返回当前的outpoint,如果newOutpoint小于clip的outPoint则newOutPoint不会小于inpoint+1,如果clip后面还有nextclip,则newOutPoint不会大于nextClip的inpoint,当前clip如果是最后一个clip最终outpoint的就是timeline的duration,如果newOutPoint大于clip的outpoint则视频末尾会静帧。此函数内部会根据newOutpoint计算出一个新的trimOut,如果clip的inpoint不等于下一个clip的outpoint会移除中间的转场. 更多...
 
(BOOL) - splitClip:splitPoint:
 分割指定的片段 更多...
 
(BOOL) - removeClip:keepSpace:
 移除指定的片段,主题的片头片尾是不允许移除的 更多...
 
(BOOL) - removeRange:endTimelinePos:keepSpace:
 移除指定的区间内的所有片段,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段包含主题片头片尾部分,会移除失败,startTimelinePos < 0 或者 endTimelinePos <= startTimelinePos 也会移除失败 更多...
 
(BOOL) - moveClip:destClipIndex:
 移动指定的片段,主题的片头片尾不能移动,clipIndex和destClipIndex不能于等于clipcount 更多...
 
(BOOL) - moveClip:targetTimelinePos:isInsertTarget:keepSpace:
 移动指定的片段到输入的位置,clipIndex大于等于clipcount会移除失败,targetTimelinePos等于0时,会被移动到0的位置,主题的片头片尾不能被移动。 更多...
 
(BOOL) - removeAllClips
 移除所有片段 更多...
 
(void) - setVolumeGain:rightVolumeGain:
 设置音量,最终的音量值是track音量乘以clip音量 更多...
 
(void) - getVolumeGain:rightVolumeGain:
 获取音量,最终的音量值是track音量乘以clip音量 更多...
 
- 构造函数 继承自 NvsObject
(void) - setAttachment:forKey:
 给NvsObject对象添加附件,用来标识NvsObject的对象或者用于其他用途 更多...
 
(void) - setTemplateAttachment:forKey:
 为NvsObject对象添加模板资源的附加数据,用来标识NvsObject的模板数据 更多...
 
(NSObject *) - getAttachment:
 获取已经添加的附件 更多...
 
(NSString *) - getTemplateAttachment:
 获取NvsObject的模板资源附件 更多...
 

属性

NvsTrackType type
 轨道类型 更多...
 
unsigned int index
 轨道索引 更多...
 
int64_t duration
 轨道长度(单位微秒) 更多...
 
unsigned int clipCount
 轨道上的片段数量 更多...
 

详细描述

轨道,容纳片段的实体

轨道可视作片段的集合,分为音频轨道(Audio Track)和视频轨道(Video Track)。创建时间线实例后,可添加或移除多条轨道。在每一条轨道上,可以添加多个要编辑的视音频片段,并对片段进行音量设置,也可以进行移除和位置移动。

警告
NvsTrack类中,所有public API都在UI线程使用!!!

函数文档

◆ changeInPoint:newInPoint:

- (int64_t) changeInPoint: (unsigned int)  clipIndex
newInPoint: (int64_t)  newInPoint 

修改片段在时间线上的入点.如果clip没有此函数授权返回当前的inpoint,newInpoint如果小于前一个clip的outpoint,直接返回前一个clip的outpoint,如果当前clip是第0个clip,则newInPoint最小为0。此函数内部会根据newinpoint计算出一个新的trimIn,并修改clip的trimIn,如果新的trimIn小于0时会返回trimIn为0时对应的Inpoint值,如果newinpoint大于trimOut则返回trimOut-1对应的inPoint值

参数
clipIndex片段索引
newInPoint时间线上新的入点(单位微秒)
返回
返回实际可到达的时间线上的入点(单位微秒)。注意:实际可达到的时间线上的入点范围在前一个片段的时间线出点与此片段的时间线出点的开区间内
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
自从
1.6.0
参见
- changeOutPoint:newOutPoint:

◆ changeOutPoint:newOutPoint:

- (int64_t) changeOutPoint: (unsigned int)  clipIndex
newOutPoint: (int64_t)  newOutPoint 

修改片段在时间线上的出点,如果clip没有此函数授权返回当前的outpoint,如果newOutpoint小于clip的outPoint则newOutPoint不会小于inpoint+1,如果clip后面还有nextclip,则newOutPoint不会大于nextClip的inpoint,当前clip如果是最后一个clip最终outpoint的就是timeline的duration,如果newOutPoint大于clip的outpoint则视频末尾会静帧。此函数内部会根据newOutpoint计算出一个新的trimOut,如果clip的inpoint不等于下一个clip的outpoint会移除中间的转场.

参数
clipIndex片段索引
newOutPoint新时间线上的出点(单位微秒)
返回
返回实际可到达的时间线上的出点(单位微秒)。注意:实际可达到的时间线上的出点范围在此片段的时间线入点与后一个片段的时间线入点的开区间内。
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
自从
1.6.0
参见
- changeInPoint:newInPoint:

◆ getVolumeGain:rightVolumeGain:

- (void) getVolumeGain: (float *)  leftVolumeGain
rightVolumeGain: (float *)  rightVolumeGain 

获取音量,最终的音量值是track音量乘以clip音量

参数
leftVolumeGain输出音量的左声道
rightVolumeGain输出音量的右声道
参见
- setVolumeGain:rightVolumeGain:

◆ moveClip:destClipIndex:

- (BOOL) moveClip: (unsigned int)  clipIndex
destClipIndex: (unsigned int)  destClipIndex 

移动指定的片段,主题的片头片尾不能移动,clipIndex和destClipIndex不能于等于clipcount

参数
clipIndex片段索引
destClipIndex片段移动的目标索引
返回
判断是否移动成功。返回YES为移动成功,NO则失败。
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题

◆ moveClip:targetTimelinePos:isInsertTarget:keepSpace:

- (BOOL) moveClip: (unsigned int)  clipIndex
targetTimelinePos: (int64_t)  targetTimelinePos
isInsertTarget: (BOOL)  isInsertTarget
keepSpace: (BOOL)  keepSpace 

移动指定的片段到输入的位置,clipIndex大于等于clipcount会移除失败,targetTimelinePos等于0时,会被移动到0的位置,主题的片头片尾不能被移动。

参数
clipIndex需要移动的片段索引
targetTimelinePos片段移动到的时间线位置,单位为微秒
isInsertTarget是否采取插入的形式移动片段,false代表使用覆盖的方式。
keepSpace片段移动过程中是否保留空间,保留的空间为黑色片段。
返回
返回移动操作是否成功
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题

◆ removeAllClips

- (BOOL) removeAllClips

移除所有片段

返回
判断是否移除成功。返回YES为移除成功,NO则失败。
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- removeClip:keepSpace:

◆ removeClip:keepSpace:

- (BOOL) removeClip: (unsigned int)  clipIndex
keepSpace: (BOOL)  keepSpace 

移除指定的片段,主题的片头片尾是不允许移除的

参数
clipIndex片段索引
keepSpace片段移除后,是否保留该片段在轨道上的空间。值为true则保留,false则不保留。
返回
判断是否移除成功。返回YES则移除成功,NO则失败。
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- removeAllClips

◆ removeRange:endTimelinePos:keepSpace:

- (BOOL) removeRange: (int64_t)  startTimelinePos
endTimelinePos: (int64_t)  endTimelinePos
keepSpace: (BOOL)  keepSpace 

移除指定的区间内的所有片段,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段包含主题片头片尾部分,会移除失败,startTimelinePos < 0 或者 endTimelinePos <= startTimelinePos 也会移除失败

参数
startTimelinePos区间的起始时间线位置(单位微秒)
endTimelinePos区间的结束时间线位置(单位微秒)
keepSpace区间内的片段移除后,是否保留该区间所占轨道上的空间。值为true则保留,false则不保留
返回
是否移除成功。返回true则移除成功,false则移除不成功
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题

◆ setVolumeGain:rightVolumeGain:

- (void) setVolumeGain: (float)  leftVolumeGain
rightVolumeGain: (float)  rightVolumeGain 

设置音量,最终的音量值是track音量乘以clip音量

参数
leftVolumeGain设置音量的左声道,取值范围[0,4)。
rightVolumeGain设置音量的右声道,取值范围[0,4)。
参见
- getVolumeGain:rightVolumeGain:

◆ splitClip:splitPoint:

- (BOOL) splitClip: (unsigned int)  clipIndex
splitPoint: (int64_t)  splitPoint 

分割指定的片段

参数
clipIndex片段索引
splitPoint分割点(单位微秒)取值范围是(clip.inpoint, clip.outpoint),超出取值范围会切割失败。
返回
判断是否分割成功,YES为分割成功; NO则不成功

分割片段,即对指定索引值的片段进行分割而变为两个片段的操作,对应的轨道上片段的索引值也会进行相应变化。

示例如下:

上图中轨道上有三个视频片段C1、C2、C3,对片段C2进行分割,分割后的片段分别命名为C2和C4。通过获取轨道上当前片段数来判定是否分割成功,分割成功则C2和C4索引值对应为1和2。

结果如下图:

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
removeClip

属性说明

◆ clipCount

- (unsigned int) clipCount
readatomicassign

轨道上的片段数量

◆ duration

- (int64_t) duration
readatomicassign

轨道长度(单位微秒)

◆ index

- (unsigned int) index
readatomicassign

轨道索引

◆ type

- (NvsTrackType) type
readatomicassign

轨道类型


该类的文档由以下文件生成: