美摄SDK For Android  3.14.0
Public 成员函数 | 所有成员列表
com.meicam.sdk.NvsTrack类 参考

轨道,容纳片段的结构 更多...

类 com.meicam.sdk.NvsTrack 继承关系图:
com.meicam.sdk.NvsObject com.meicam.sdk.NvsAudioTrack com.meicam.sdk.NvsVideoTrack

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音量 更多...
 
- Public 成员函数 继承自 com.meicam.sdk.NvsObject
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
 音频轨道 更多...
 
- 静态 Public 属性 继承自 com.meicam.sdk.NvsObject
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"
 

额外继承的成员函数

- Protected 成员函数 继承自 com.meicam.sdk.NvsObject
void setInternalObject (long internalObject)
 
long getInternalObject ()
 
- Protected 属性 继承自 com.meicam.sdk.NvsObject
long m_internalObject = 0
 

详细描述

轨道,容纳片段的结构

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

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

成员函数说明

◆ changeInPoint()

long com.meicam.sdk.NvsTrack.changeInPoint ( int  clipIndex,
long  newInPoint 
)
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时间线上新的入点(单位微秒)
返回
返回实际可到达的时间线上的入点(单位微秒)。注意:实际可达到的时间线上的入点范围在前一个片段的时间线出点与此片段的时间线出点的开区间内
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
自从
1.6.0
参见
changeInPoint

◆ changeOutPoint()

long com.meicam.sdk.NvsTrack.changeOutPoint ( int  clipIndex,
long  newOutPoint 
)
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时间线上新的出点(单位微秒)
返回
返回实际可到达的时间线上的出点(单位微秒)。注意:实际可达到的时间线上的出点范围在此片段的时间线入点与后一个片段的时间线入点的开区间内
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
自从
1.6.0
参见
changeOutPoint

◆ getClipCount()

int com.meicam.sdk.NvsTrack.getClipCount ( )
inline

获取轨道上的片段数量

返回
返回轨道上的片段数量

◆ getDuration()

long com.meicam.sdk.NvsTrack.getDuration ( )
inline

获取轨道长度

返回
返回轨道的长度(单位微秒)

◆ getIndex()

int com.meicam.sdk.NvsTrack.getIndex ( )
inline

获取轨道索引

返回
返回轨道索引

◆ getType()

int com.meicam.sdk.NvsTrack.getType ( )
inline

获取轨道类型

返回
返回轨道类型

◆ getVolumeGain()

NvsVolume com.meicam.sdk.NvsTrack.getVolumeGain ( )
inline

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

返回
返回获取的音量对象
参见
setVolumeGain

◆ moveClip() [1/2]

boolean com.meicam.sdk.NvsTrack.moveClip ( int  clipIndex,
int  destClipIndex 
)
inline

移动指定的片段,交换输入的两个位置,会影响时间线上片段的排布。主题的片头片尾不能移动,clipIndex和destClipIndex不能于等于clipcount

参数
clipIndex需要移动的片段索引
destClipIndex片段移动目标位置的目标索引
返回
返回移动操作是否成功
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题

◆ moveClip() [2/2]

boolean com.meicam.sdk.NvsTrack.moveClip ( int  clipIndex,
long  targetTimelinePos,
boolean  isInsertTarget,
boolean  keepSpace 
)
inline

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

参数
clipIndex需要移动的片段索引
targetTimelinePos片段移动到的时间线位置,单位为微秒
isInsertTargettrue表示采用插入的方式移动片段,若目标位置有片段则将该片段截断然后插入要移动的片段,false表示采用覆盖的方式移动片段,若目标位置有片段则将要移动的片段覆盖到该片段所在区域。
keepSpace片段移动过程中是否保留空间,保留的空间为黑色片段。
返回
返回移动操作是否成功
警告
此接口会使得片段的数量、索引、出入点发生变化,引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题

◆ removeAllClips()

boolean com.meicam.sdk.NvsTrack.removeAllClips ( )
inline

移除所有片段

返回
判断是否移除成功。返回true则移除成功,false则移除不成功
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
removeClip

◆ removeClip()

boolean com.meicam.sdk.NvsTrack.removeClip ( int  clipIndex,
boolean  keepSpace 
)
inline

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

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

◆ removeRange()

boolean com.meicam.sdk.NvsTrack.removeRange ( long  startTimelinePos,
long  endTimelinePos,
boolean  keepSpace 
)
inline

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

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

◆ setVolumeGain()

void com.meicam.sdk.NvsTrack.setVolumeGain ( float  leftVolumeGain,
float  rightVolumeGain 
)
inline

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

参数
leftVolumeGain左声道值,取值范围[0,8)。
rightVolumeGain右声道值,取值范围[0,8)。
参见
getVolumeGain

◆ splitClip()

boolean com.meicam.sdk.NvsTrack.splitClip ( int  clipIndex,
long  splitPoint 
)
inline

分割指定的片段

参数
clipIndex片段索引
splitPoint分割点(单位微秒)取值范围是(clip.inpoint, clip.outpoint),超出取值范围会切割失败。 分割片段,即对指定索引值的片段进行分割而变为两个片段的操作,对应的轨道上片段的索引值也会进行相应变化。

示例如下:

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

结果如下图:

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

类成员变量说明

◆ TRACK_TYPE_AUDIO

final int com.meicam.sdk.NvsTrack.TRACK_TYPE_AUDIO = 1
static

音频轨道

◆ TRACK_TYPE_VIDEO

final int com.meicam.sdk.NvsTrack.TRACK_TYPE_VIDEO = 0
static

视频轨道


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