美摄SDK For Android
3.14.0
|
轨道,容纳片段的结构 更多...
Public 成员函数 | |
int | getType () |
获取轨道类型 更多... | |
int | getIndex () |
获取轨道索引 更多... | |
long | getDuration () |
获取轨道长度 更多... | |
int | getClipCount () |
获取轨道上的片段数量 更多... | |
long | changeInPoint (int clipIndex, long 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值 更多... | |
long | changeOutPoint (int clipIndex, long 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会移除中间的转场. 更多... | |
boolean | splitClip (int clipIndex, long splitPoint) |
分割指定的片段 更多... | |
boolean | removeClip (int clipIndex, boolean keepSpace) |
移除指定的片段,主题的片头片尾是不允许移除的 更多... | |
boolean | removeRange (long startTimelinePos, long endTimelinePos, boolean keepSpace) |
移除指定的区间内的所有片段,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段包含主题片头片尾部分,会移除失败,startTimelinePos < 0 或者 endTimelinePos <= startTimelinePos 也会移除失败. 更多... | |
boolean | moveClip (int clipIndex, int destClipIndex) |
移动指定的片段,交换输入的两个位置,会影响时间线上片段的排布。主题的片头片尾不能移动,clipIndex和destClipIndex不能于等于clipcount 更多... | |
boolean | moveClip (int clipIndex, long targetTimelinePos, boolean isInsertTarget, boolean keepSpace) |
移动指定的片段到输入的位置,clipIndex大于等于clipcount会移除失败,targetTimelinePos等于0时,会被移动到0的位置,主题的片头片尾不能被移动。 更多... | |
boolean | removeAllClips () |
移除所有片段 更多... | |
void | setVolumeGain (float leftVolumeGain, float rightVolumeGain) |
设置音量,最终的音量值是track音量乘以clip音量 更多... | |
NvsVolume | getVolumeGain () |
获取音量,最终的音量值是track音量乘以clip音量 更多... | |
![]() | |
void | setAttachment (String key, Object value) |
为NvsObject对象添加附加的数据,用来标识NvsObject的对象或者其他用途 更多... | |
void | setTemplateAttachment (String key, String value) |
为NvsObject对象添加模板资源的附加数据,用来标识NvsObject的模板数据 更多... | |
Object | getAttachment (String key) |
获取NvsObject的附件 更多... | |
String | getTemplateAttachment (String key) |
获取NvsObject的模板资源附件 更多... | |
静态 Public 属性 | |
轨道类型 | |
static final int | TRACK_TYPE_VIDEO = 0 |
视频轨道 更多... | |
static final int | TRACK_TYPE_AUDIO = 1 |
音频轨道 更多... | |
![]() | |
static final String | TEMPLATE_KEY_REPLACE_ID = "MSTemplate-ReplaceId" |
static final String | TEMPLATE_KEY_FOOTAGE_CAN_REPLACE = "MSTemplate-FootageCanReplace" |
static final String | TEMPLATE_KEY_FOOTAGE_ID = "MSTemplate-FootageId" |
static final String | TEMPLATE_KEY_FOOTAGE_NAME = "MSTemplate-FootageName" |
static final String | TEMPLATE_KEY_FOOTAGE_M3U8_NAME = "MSTemplate-FootageM3U8Name" |
static final String | TEMPLATE_KEY_FOOTAGE_TAGS = "MSTemplate-FootageTags" |
static final String | TEMPLATE_KEY_FOOTAGE_TYPE = "MSTemplate-FootageType" |
static final String | TEMPLATE_KEY_FOOTAGE_NEED_REVERSE = "MSTemplate-FootageNeedReverse" |
static final String | TEMPLATE_KEY_CLIP_RAW_WIDTH = "MSTemplate-ClipRawWidth" |
static final String | TEMPLATE_KEY_CLIP_RAW_HEIGHT = "MSTemplate-ClipRawHeight" |
static final String | TEMPLATE_KEY_VOLUME_TYPE = "MSTemplate-VolumeType" |
static final String | TEMPLATE_KEY_FX_GROUP = "MSTemplate-FxGroup" |
static final String | TEMPLATE_KEY_BEST_SEEK_TIME = "MSTemplate-BestSeekTime" |
static final String | TEMPLATE_KEY_MASK_TYPE = "MSTemplate-MaskType" |
static final String | TEMPLATE_VALUE_MASK_TYPE_LINE = "MSTemplate-MaskType-Line" |
static final String | TEMPLATE_VALUE_MASK_TYPE_MIRROR = "MSTemplate-MaskType-Mirror" |
static final String | TEMPLATE_VALUE_MASK_TYPE_CIRCLE = "MSTemplate-MaskType-Circle" |
static final String | TEMPLATE_VALUE_MASK_TYPE_RECT = "MSTemplate-MaskType-Rect" |
static final String | TEMPLATE_VALUE_MASK_TYPE_HEART = "MSTemplate-MaskType-Heart" |
static final String | TEMPLATE_VALUE_MASK_TYPE_STAR = "MSTemplate-MaskType-Star" |
static final String | TEMPLATE_KEY_TRANS_TYPE_CUT = "MSTemplate-TransType-Cut" |
static final String | TEMPLATE_KEY_CURVE_SPEED_TYPE = "MSTemplate-CurveSpeedType" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_CUSTOM = "MSTemplate-CurveSpeedType-Custom" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_MONTAGE = "MSTemplate-CurveSpeedType-Montage" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_HERO = "MSTemplate-CurveSpeedType-Hero" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_BULLET = "MSTemplate-CurveSpeedType-bullet" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_PLUS = "MSTemplate-CurveSpeedType-Plus" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_IN = "MSTemplate-CurveSpeedType-In" |
static final String | TEMPLATE_VALUE_CURVE_SPEED_TYPE_OUT = "MSTemplate-CurveSpeedType-Out" |
额外继承的成员函数 | |
![]() | |
void | setInternalObject (long internalObject) |
long | getInternalObject () |
![]() | |
long | m_internalObject = 0 |
轨道,容纳片段的结构
轨道可视作片段的集合,分为音频轨道(Audio Track)和视频轨道(Video Track)。创建时间线实例后,可添加或移除多条轨道。在每一条轨道上,可以添加多个要编辑的视音频片段,并对片段进行音量设置,也可以进行移除和位置移动。
|
inline |
修改片段时间线上的入点.如果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 | 时间线上新的入点(单位微秒) |
|
inline |
修改片段时间线上的出点,如果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 | 时间线上新的出点(单位微秒) |
|
inline |
获取轨道上的片段数量
|
inline |
获取轨道长度
|
inline |
获取轨道索引
|
inline |
获取轨道类型
|
inline |
|
inline |
移动指定的片段,交换输入的两个位置,会影响时间线上片段的排布。主题的片头片尾不能移动,clipIndex和destClipIndex不能于等于clipcount
clipIndex | 需要移动的片段索引 |
destClipIndex | 片段移动目标位置的目标索引 |
|
inline |
移动指定的片段到输入的位置,clipIndex大于等于clipcount会移除失败,targetTimelinePos等于0时,会被移动到0的位置,主题的片头片尾不能被移动。
clipIndex | 需要移动的片段索引 |
targetTimelinePos | 片段移动到的时间线位置,单位为微秒 |
isInsertTarget | true表示采用插入的方式移动片段,若目标位置有片段则将该片段截断然后插入要移动的片段,false表示采用覆盖的方式移动片段,若目标位置有片段则将要移动的片段覆盖到该片段所在区域。 |
keepSpace | 片段移动过程中是否保留空间,保留的空间为黑色片段。 |
|
inline |
|
inline |
移除指定的片段,主题的片头片尾是不允许移除的
clipIndex | 片段索引 |
keepSpace | 片段移除后,是否保留该片段在轨道上的空间。值为true则保留,false则不保留 |
|
inline |
移除指定的区间内的所有片段,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段只有部分与该区间重合则调整其时间线入点或者出点,如果片段包含主题片头片尾部分,会移除失败,startTimelinePos < 0 或者 endTimelinePos <= startTimelinePos 也会移除失败.
startTimelinePos | 区间的起始时间线位置(单位微秒) |
endTimelinePos | 区间的结束时间线位置(单位微秒) |
keepSpace | 区间内的片段移除后,是否保留该区间所占轨道上的空间。值为true则保留,false则不保留 |
|
inline |
设置音量,最终的音量值是track音量乘以clip音量
leftVolumeGain | 左声道值,取值范围[0,8)。 |
rightVolumeGain | 右声道值,取值范围[0,8)。 |
|
inline |
分割指定的片段
clipIndex | 片段索引 |
splitPoint | 分割点(单位微秒)取值范围是(clip.inpoint, clip.outpoint),超出取值范围会切割失败。 分割片段,即对指定索引值的片段进行分割而变为两个片段的操作,对应的轨道上片段的索引值也会进行相应变化。 |
示例如下:
上图中轨道上有三个视频片段C1、C2、C3,对片段C2进行分割,分割后的片段分别命名为C2和C4。通过获取轨道上当前片段数来判定是否分割成功,分割成功则C2和C4索引值对应为1和2。
结果如下图:
|
static |
音频轨道
|
static |
视频轨道