|
美摄SDK For iOS
3.14.4
|
轨道,容纳片段的实体 更多...
#import <NvsTrack.h>
构造函数 | |
| (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)。创建时间线实例后,可添加或移除多条轨道。在每一条轨道上,可以添加多个要编辑的视音频片段,并对片段进行音量设置,也可以进行移除和位置移动。
| - (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 | 时间线上新的入点(单位微秒) |
| - (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 | 新时间线上的出点(单位微秒) |
| - (void) getVolumeGain: | (float *) | leftVolumeGain | |
| rightVolumeGain: | (float *) | rightVolumeGain | |
获取音量,最终的音量值是track音量乘以clip音量
| leftVolumeGain | 输出音量的左声道 |
| rightVolumeGain | 输出音量的右声道 |
| - (BOOL) moveClip: | (unsigned int) | clipIndex | |
| destClipIndex: | (unsigned int) | destClipIndex | |
移动指定的片段,主题的片头片尾不能移动,clipIndex和destClipIndex不能于等于clipcount
| clipIndex | 片段索引 |
| destClipIndex | 片段移动的目标索引 |
| - (BOOL) moveClip: | (unsigned int) | clipIndex | |
| targetTimelinePos: | (int64_t) | targetTimelinePos | |
| isInsertTarget: | (BOOL) | isInsertTarget | |
| keepSpace: | (BOOL) | keepSpace | |
移动指定的片段到输入的位置,clipIndex大于等于clipcount会移除失败,targetTimelinePos等于0时,会被移动到0的位置,主题的片头片尾不能被移动。
| clipIndex | 需要移动的片段索引 |
| targetTimelinePos | 片段移动到的时间线位置,单位为微秒 |
| isInsertTarget | true表示采用插入的方式移动片段,若目标位置有片段则将该片段截断然后插入要移动的片段,false表示采用覆盖的方式移动片段,若目标位置有片段则将要移动的片段覆盖到该片段所在区域。 |
| keepSpace | 片段移动过程中是否保留空间,保留的空间为黑色片段。 |
| - (BOOL) removeAllClips |
| - (BOOL) removeClip: | (unsigned int) | clipIndex | |
| keepSpace: | (BOOL) | keepSpace | |
移除指定的片段,主题的片头片尾是不允许移除的
| clipIndex | 片段索引 |
| keepSpace | 片段移除后,是否保留该片段在轨道上的空间。值为true则保留,false则不保留。 |
| - (BOOL) removeRange: | (int64_t) | startTimelinePos | |
| endTimelinePos: | (int64_t) | endTimelinePos | |
| keepSpace: | (BOOL) | keepSpace | |
移除指定的区间内的所有片段,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段包含主题片头片尾部分,会移除失败,startTimelinePos < 0 或者 endTimelinePos <= startTimelinePos 也会移除失败
| startTimelinePos | 区间的起始时间线位置(单位微秒) |
| endTimelinePos | 区间的结束时间线位置(单位微秒) |
| keepSpace | 区间内的片段移除后,是否保留该区间所占轨道上的空间。值为true则保留,false则不保留 |
| - (void) setVolumeGain: | (float) | leftVolumeGain | |
| rightVolumeGain: | (float) | rightVolumeGain | |
设置音量,最终的音量值是track音量乘以clip音量
| leftVolumeGain | 设置音量的左声道,取值范围[0,4)。 |
| rightVolumeGain | 设置音量的右声道,取值范围[0,4)。 |
| - (BOOL) splitClip: | (unsigned int) | clipIndex | |
| splitPoint: | (int64_t) | splitPoint | |
分割指定的片段
| clipIndex | 片段索引 |
| splitPoint | 分割点(单位微秒)取值范围是(clip.inpoint, clip.outpoint),超出取值范围会切割失败。 |
分割片段,即对指定索引值的片段进行分割而变为两个片段的操作,对应的轨道上片段的索引值也会进行相应变化。
示例如下:
上图中轨道上有三个视频片段C1、C2、C3,对片段C2进行分割,分割后的片段分别命名为C2和C4。通过获取轨道上当前片段数来判定是否分割成功,分割成功则C2和C4索引值对应为1和2。
结果如下图:
|
readatomicassign |
轨道上的片段数量
|
readatomicassign |
轨道长度(单位微秒)
|
readatomicassign |
轨道索引
|
readatomicassign |
轨道类型
1.8.18