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

视频轨道,视频片段的集合 更多...

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

Public 成员函数

NvsVideoClip appendClip (String filePath)
 在视频轨道尾部追加视频片段 更多...
 
NvsVideoClip appendClip (String filePath, long trimIn, long trimOut)
 在视频轨道尾部追加指定长度的视频片段 更多...
 
NvsVideoClip insertClip (String filePath, int clipIndex)
 在视频轨道上指定片段索引处插入视频片段 更多...
 
NvsVideoClip insertClip (String filePath, long trimIn, long trimOut, int clipIndex)
 在视频轨道上指定片段索引处插入指定长度的视频片段 更多...
 
NvsVideoClip addClip (String filePath, long inPoint)
 添加片段 更多...
 
NvsVideoClip addClip (String filePath, long inPoint, long trimIn, long trimOut)
 添加指定长度的片段 更多...
 
NvsVideoClip getClipByIndex (int clipIndex)
 通过索引获取视频片段 更多...
 
NvsVideoClip getClipByTimelinePosition (long timelinePos)
 通过时间获取视频片段 更多...
 
NvsVideoTransition setBuiltinTransition (int srcClipIndex, String transitionName)
 设置内嵌式转场 更多...
 
NvsVideoTransition setPackagedTransition (int srcClipIndex, String packageId)
 设置资源包转场 更多...
 
NvsVideoTransition getTransitionBySourceClipIndex (int srcClipIndex)
 根据视频片段索引位置获取转场信息 更多...
 
- Public 成员函数 继承自 com.meicam.sdk.NvsTrack
int getType ()
 获取轨道类型 更多...
 
int getIndex ()
 获取轨道索引 更多...
 
long getDuration ()
 获取轨道长度 更多...
 
int getClipCount ()
 获取轨道上的片段数量 更多...
 
long changeInPoint (int clipIndex, long newInPoint)
 修改片段时间线上的入点 更多...
 
long changeOutPoint (int clipIndex, long newOutPoint)
 修改片段时间线上的出点 更多...
 
boolean splitClip (int clipIndex, long splitPoint)
 分割指定的片段 更多...
 
boolean removeClip (int clipIndex, boolean keepSpace)
 移除指定的片段 更多...
 
boolean removeRange (long startTimelinePos, long endTimelinePos, boolean keepSpace)
 移除指定的区间内的所有片段,如果片段只有部分与该区间重合则调整其时间线入点或者出点 更多...
 
boolean moveClip (int clipIndex, int destClipIndex)
 移动指定的片段 更多...
 
boolean removeAllClips ()
 移除所有片段 更多...
 
void setVolumeGain (float leftVolumeGain, float rightVolumeGain)
 设置音量 更多...
 
NvsVolume getVolumeGain ()
 获取音量 更多...
 
- Public 成员函数 继承自 com.meicam.sdk.NvsObject
void setAttachment (String key, Object value)
 为NvsObject对象添加附加的数据,用来标识NvsObject的对象或者其他用途 更多...
 
Object getAttachment (String key)
 获取NvsObject的附件 更多...
 

额外继承的成员函数

- 静态 Public 属性 继承自 com.meicam.sdk.NvsTrack
static final int TRACK_TYPE_VIDEO = 0
 视频轨道 更多...
 
static final int TRACK_TYPE_AUDIO = 1
 音频轨道 更多...
 
- Protected 成员函数 继承自 com.meicam.sdk.NvsObject
void setInternalObject (long internalObject)
 
long getInternalObject ()
 
- Protected 属性 继承自 com.meicam.sdk.NvsObject
long m_internalObject = 0
 

详细描述

视频轨道,视频片段的集合

视频轨道是容纳视频片段的实体,可以添加、插入、删移多个视频片段。视频轨道随着片段的增加不断延展,而片段与片段之间可进行视频转场设置。 添加包裹转场时,都得先安装,安装成功后获取packageId才能使用,而内建转场(builtin)只需获取转场名称即可使用。 注:视频片段的索引都是从0开始。

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

成员函数说明

NvsVideoClip com.meicam.sdk.NvsVideoTrack.addClip ( String  filePath,
long  inPoint 
)
inline

添加片段

参数
filePath片段路径 对于Android里的片段路径,有两种方式:

a. 在本地程序路径下创建一个assets文件夹,一般放在跟res文件夹同级的目录里。可将相应的音视频等资源放在里面,路径形式:"assets:/video20170406101714.mp4"

b. 通过绝对路径导入手机里的音视频等资源,路径形式:"/storage/Media/DCIM/IMG_0646.MP4"

参数
inPoint片段在时间线上的入点(单位微秒) 对于片段在时间线上的入点与出点的理解,具体请参见裁剪入点与出点(trimIn and trimOut)专题。
返回
返回添加的视频片段对象)
警告
NvsVideoTrack类中,所有public API都在UI线程使用!!!
参见
appendClip
insertClip
NvsVideoClip com.meicam.sdk.NvsVideoTrack.addClip ( String  filePath,
long  inPoint,
long  trimIn,
long  trimOut 
)
inline

添加指定长度的片段

参数
filePath片段路径。对于片段路径方式,请参见addClip()的参数filePath。
inPoint片段在时间线上的入点(单位微秒)
trimIn片段裁剪入点(单位微秒)
trimOut片段裁剪出点(单位微秒)
返回
返回添加的视频片段对象 使用addClip()添加片段时,待添加的片段会在时间线上指定的入点分割当前片段,再从当前指定的入点起,在轨道上按待添加片段的长度删除对应长度的位置里面所包含的片段,然后添加需要添加的片段。如果在对应位置上有空隙,则直接覆盖。 示例如下:
beforeAddClip.PNG
如上图,轨道上有三个视频片段C1、C2、C3,以及待添加的片段C4。C4片段上箭头所指处即为片段裁剪的的入点和出点,轨道上箭头所指即为片段在时间线上的入点,裁剪后将对应片段添加到轨道上。代码实现如下: NvsVideoTrack videoTrack; //videoTrack这里省略创建 videoTrack.addClip(filepath,inPoint,trimIn,trimOut);//filepath为片段C4的路径,inPoint为图中轨道上箭头所指位置的值,trimIn和trimOut为上图C4片段上箭头所指位置处的值

添加后结果如下:

afterAddClip.PNG
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
appendClip
insertClip
NvsVideoClip com.meicam.sdk.NvsVideoTrack.appendClip ( String  filePath)
inline

在视频轨道尾部追加视频片段

参数
filePath视频片段路径。对于片段路径方式,请参见addClip()的参数filePath。
返回
返回追加的视频片段对象 例:
TrackClip.PNG
上图中视频轨道上有三个片段,分别为C1,C2,C3, 在视频轨道尾部追加一个新的片段C4 NvsVideoTrack m_videoTrack;//m_videoTrack省略创建 NvsVideoClip m_videoClip; m_videoClip = m_videoTrack.appendClip(filepath) //filepath为片段C4的路径。 追加后变为:
TrackAppendClip.PNG
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
insertClip
NvsVideoClip com.meicam.sdk.NvsVideoTrack.appendClip ( String  filePath,
long  trimIn,
long  trimOut 
)
inline

在视频轨道尾部追加指定长度的视频片段

参数
filePath视频片段路径。对于片段路径方式,请参见addClip()的参数filePath。
trimIn视频片段的裁剪入点(单位微秒)
trimOut视频片段的裁剪出点(单位微秒)
返回
返回追加的视频片段对象 对于片段裁剪入点与出点的理解,具体请参见裁剪入点与出点(trimIn and trimOut)专题。
警告
NvsVideoTrack类中,所有public API都在UI线程使用!!!
参见
insertClip
NvsVideoClip com.meicam.sdk.NvsVideoTrack.getClipByIndex ( int  clipIndex)
inline

通过索引获取视频片段

参数
clipIndex视频片段索引 片段索引取值范围: NvsVideoTrack m_videoTrack;//m_videoTrack omitted creation int clipCount = m_videoTrack.getClipCount(); The value of clipIndex is [0, clipCount-1]
返回
返回获取的视频片段对象
参见
getClipByTimelinePosition
insertClip
appendClip
NvsVideoClip com.meicam.sdk.NvsVideoTrack.getClipByTimelinePosition ( long  timelinePos)
inline

通过时间获取视频片段

参数
timelinePos时间线上的位置(单位微秒)
返回
返回获取的视频片段对象
参见
getClipByIndex
NvsVideoTransition com.meicam.sdk.NvsVideoTrack.getTransitionBySourceClipIndex ( int  srcClipIndex)
inline

根据视频片段索引位置获取转场信息

参数
srcClipIndex源视频剪辑索引
返回
返回获取的视频转场对象
参见
setBuiltinTransition
NvsVideoClip com.meicam.sdk.NvsVideoTrack.insertClip ( String  filePath,
int  clipIndex 
)
inline

在视频轨道上指定片段索引处插入视频片段

参数
filePath视频片段路径。对于片段路径方式,请参见addClip()的参数filePath。
clipIndex插入后片段的索引
返回
返回插入的视频片段对象 调用insertClip()执行的是前插入即在clipIndex所表示的片段之前进行插入。示例如下:
TrackClip.PNG
上图中轨道上有三个视频片段C1、C2、C3,待插入的片段记为C4。如果在C1之前插入,则clipIndex值为0,其它以此类推。相应代码实现如下: NvsVideoTrack m_videoTrack;//m_videoTrack省略创建 int clipCount = m_videoTrack.getClipCount(); NvsVideoClip m_videoClip; m_videoClip = m_videoTrack.insertClip(filepath,0); //filepath为片段C4的路径,clipIndex取值为[0,clipCount-1] 插入后变为:
TrackInsertClip.PNG
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
appendClip
NvsVideoClip com.meicam.sdk.NvsVideoTrack.insertClip ( String  filePath,
long  trimIn,
long  trimOut,
int  clipIndex 
)
inline

在视频轨道上指定片段索引处插入指定长度的视频片段

参数
filePath视频片段路径。对于片段路径方式,请参见addClip()的参数filePath。
clipIndex插入片段索引
trimIn视频片段的裁剪入点(单位微秒)
trimOut视频片段的裁剪出点(单位微秒)
返回
返回插入的视频片段对象
beforeInsertClip.PNG

上图中轨道上有三个视频片段C1、C2、C3,以及待插入的片段C4。C4片段上箭头所指处即为片段裁剪的的入点和出点,裁剪后将对应片段插入到轨道上。注意:裁剪入点和出点值必须在此片段的时长范围里,且裁剪入点值必须小于裁剪出点值。实现代码如下: NvsVideoTrack m_videoTrack;//m_videoTrack省略创建 int clipCount = m_videoTrack.getClipCount(); NvsVideoClip m_videoClip; m_videoClip = m_videoTrack.insertClip(filepath,trimIn,trimOut,0);//filepath为片段C4的路径,trimIn和trimOut为上图C4片段上箭头所指位置处的值,clipIndex取值为[0,clipCount-1] 插入后变为:

TrackInsertClip.PNG
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
appendClip
NvsVideoTransition com.meicam.sdk.NvsVideoTrack.setBuiltinTransition ( int  srcClipIndex,
String  transitionName 
)
inline

设置内嵌式转场

参数
srcClipIndex源视频片段索引
transitionName转场名称。获取视频转场名称,请参见getAllBuiltinVideoTransitionNames()内建特效名称列表。注意:转场名称若设为空字符串,则删除原有转场。
返回
返回设置的视频转场对象。若transitionName设为空字符串(即删除原有转场),返回null

例如:下图中轨道上有四个视频片段,分别为C1,C2,C3,C4,其中片段C1、C2、C3相邻,而片段C3与C4之间存在空隙。若在C1和C2之间 设置一个内嵌式转场后变为:

TrackTransition.PNG
                NvsVideoTrack m_videoTrack;//m_videoTrack省略创建
                int clipCount = m_videoTrack.getClipCount();
                NvsVideoTransition m_videoTransition;
                m_videoTransition = m_videoTrack.setBuiltinTransition(0,transitionName) //srcClipIndex取值范围为(1,clipCount-1),transitionName为要设置的转场的名称

若在C2和C3之间添加转场,则索引为1。转场只能设置在两个相邻片段之间,上图中的C3和C4片段之间存在空隙,不能在两片段之间添加转场。

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
setPackagedTransition
NvsVideoTransition com.meicam.sdk.NvsVideoTrack.setPackagedTransition ( int  srcClipIndex,
String  packageId 
)
inline

设置资源包转场

参数
srcClipIndex源视频片段索引
packageId转场资源包ID 若packageId为空,则删除该视频片段处的转场;若packageId设为"theme",则该视频片段处的转场设为当前主题的转场, 若无主题,则删除该视频片段处的转场
返回
返回设置的视频转场对象
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
setBuiltinTransition

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