美摄SDK For iOS  3.10.0
构造函数 | 所有成员列表
NvsVideoTrack类 参考

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

#import <NvsVideoTrack.h>

类 NvsVideoTrack 继承关系图:
NvsTrack NvsObject

构造函数

(NvsVideoClip *) - appendClip:
 在视频轨道尾部追加片段 更多...
 
(NvsVideoClip *) - appendClip:trimIn:trimOut:
 在轨道尾部追加指定长度的片段 更多...
 
(NvsVideoClip *) - insertClip:clipIndex:
 在视频轨道上指定片段索引处插入片段 更多...
 
(NvsVideoClip *) - insertClip:trimIn:trimOut:clipIndex:
 在轨道上指定片段索引处插入指定长度的片段 更多...
 
(NvsVideoClip *) - addClip:inPoint:
 添加片段 更多...
 
(NvsVideoClip *) - addClip:inPoint:trimIn:trimOut:
 添加指定长度的片段 更多...
 
(NvsVideoClip *) - appendTimelineClip:
 在视频轨道尾部追加时间线片段 更多...
 
(NvsVideoClip *) - appendTimelineClip:trimIn:trimOut:
 在轨道尾部追加指定长度的时间线片段 更多...
 
(NvsVideoClip *) - insertTimelineClip:clipIndex:
 在视频轨道上指定片段索引处插入片段 更多...
 
(NvsVideoClip *) - insertTimelineClip:trimIn:trimOut:clipIndex:
 在轨道上指定片段索引处插入指定长度的是时间线片段 更多...
 
(NvsVideoClip *) - addTimelineClip:inPoint:
 添加时间线片段 更多...
 
(NvsVideoClip *) - addTimelineClip:inPoint:trimIn:trimOut:
 添加指定长度的片段 更多...
 
(NvsVideoClip *) - getClipWithIndex:
 通过索引获取片段对象 更多...
 
(NvsVideoClip *) - getClipWithTimelinePosition:
 通过时间获取片段对象 更多...
 
(NvsVideoTransition *) - setBuiltinTransition:withName:
 设置内嵌式转场 更多...
 
(NvsVideoTransition *) - setPackagedTransition:withPackageId:
 设置包裹转场 更多...
 
(NvsVideoTransition *) - setCustomVideoTransition:withCustomRender:
 设置自定义转场 更多...
 
(NvsVideoTransition *) - getTransitionWithSourceClipIndex:
 通过源片段索引获取转场 更多...
 
(NvsTrackVideoFx *) - getFirstTrackVideoFx
 获取轨道上第一个轨道视频特效 更多...
 
(NvsTrackVideoFx *) - getLastTrackVideoFx
 获取轨道上最后一个轨道视频特效 更多...
 
(NvsTrackVideoFx *) - getPrevTrackVideoFx:
 获取轨道上某个轨道视频特效的前一个轨道视频特效 更多...
 
(NvsTrackVideoFx *) - getNextTrackVideoFx:
 获取轨道上某个轨道视频特效的下一个轨道视频特效 更多...
 
(NSArray *) - getTrackVideoFxByPosition:
 根据轨道上的位置获得轨道视频特效列表 更多...
 
(void) - setEnableOriginalRender:
 开启按照视频轨道的原始比例进行特效渲染 更多...
 
(BOOL) - isOriginalRender
 获取是否开启了原始比例渲染的模式 更多...
 
(void) - setProxyScale:
 设置当前轨道渲染的代理级别 更多...
 
(NvsRational- getProxyScale
 获取当前轨道渲染的代理级别 更多...
 
(NvsTrackCaption *) - getFirstCaption
 获取轨道上的第一个字幕 更多...
 
(NvsTrackCaption *) - getLastCaption
 获取轨道上的最后一个字幕 更多...
 
(NvsTrackCaption *) - getPrevCaption:
 获取轨道上的当前字幕的前一个字幕 更多...
 
(NvsTrackCaption *) - getNextCaption:
 获取轨道上的当前字幕的前一个字幕 更多...
 
(NSArray *) - getCaptionsByTimelinePosition:
 根据轨道上的位置获得字幕列表。 更多...
 
(NvsTrackCaption *) - addCaption:inPoint:duration:captionStylePackageId:
 在轨道上添加字幕 更多...
 
(NvsTrackCaption *) - addPanoramicCaption:inPoint:duration:captionStylePackageId:
 在轨道上添加全景图字幕 更多...
 
(NvsTrackCaption *) - addModularCaption:inPoint:duration:
 在轨道上添加模块字幕 更多...
 
(NvsTrackCaption *) - removeCaption:
 移除轨道上的字幕 更多...
 
(NvsTrackCompoundCaption *) - getFirstCompoundCaption
 获取轨道上的第一个复合字幕 更多...
 
(NvsTrackCompoundCaption *) - getLastCompoundCaption
 获取轨道上的最后一个复合字幕 更多...
 
(NvsTrackCompoundCaption *) - getPrevCompoundCaption:
 获取轨道上的当前复合字幕的前一个复合字幕 更多...
 
(NvsTrackCompoundCaption *) - getNextCompoundCaption:
 获取轨道上的当前复合字幕的前一个复合字幕 更多...
 
(NSArray< NvsTrackCompoundCaption * > *) - getCompoundCaptionsByTimelinePosition:
 根据轨道上的位置获得复合字幕列表 更多...
 
(NvsTrackCompoundCaption *) - addCompoundCaption:duration:compoundCaptionPackageId:
 在轨道上添加字幕 更多...
 
(NvsTrackCompoundCaption *) - removeCompoundCaption:
 移除轨道上的复合字幕 更多...
 
(NvsTrackAnimatedSticker *) - getFirstAnimatedSticker
 获取轨道上第一个动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - getLastAnimatedSticker
 获取轨道上最后一个动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - getPrevAnimatedSticker:
 获取轨道当前动画贴纸的前一个动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - getNextAnimatedSticker:
 获取轨道当前动画贴纸的后一个动画贴纸 更多...
 
(NSArray *) - getAnimatedStickersByTimelinePosition:
 根据轨道上的位置获得动画贴纸列表 更多...
 
(NvsTrackAnimatedSticker *) - addAnimatedSticker:duration:animatedStickerPackageId:
 在轨道上添加动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - addPanoramicAnimatedSticker:duration:animatedStickerPackageId:
 在轨道上添加全景图动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - addCustomAnimatedSticker:duration:animatedStickerPackageId:customImagePath:
 在轨道上添加自定义动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - addCustomPanoramicAnimatedSticker:duration:animatedStickerPackageId:customImagePath:
 在轨道上添加自定义全景图动画贴纸 更多...
 
(NvsTrackAnimatedSticker *) - removeAnimatedSticker:
 移除轨道上的动画贴纸 更多...
 
(void) - updateAudioForTrackVideoFx
 更新当前轨道特效中携带的音频信息。 更多...
 
(NvsTrackVideoFx *) - addBuiltinTrackVideoFx:duration:videoFxName:
 在轨道上添加内嵌的轨道视频特效 更多...
 
(NvsTrackVideoFx *) - addBuiltinTrackVideoFx:duration:videoFxName:flags:
 在轨道上添加内嵌的轨道视频特效 更多...
 
(NvsTrackVideoFx *) - addPackagedTrackVideoFx:duration:videoFxPackageId:
 在轨道上添加资源包形式的轨道视频特效 更多...
 
(NvsTrackVideoFx *) - addPackagedTrackVideoFx:duration:videoFxPackageId:flags:
 在轨道上添加资源包形式的轨道视频特效 更多...
 
(NvsTrackVideoFx *) - addCustomTrackVideoFx:duration:customVideoFxRender:
 在轨道上添加自定义轨道视频特效 更多...
 
(NvsTrackVideoFx *) - removeTrackVideoFx:
 移除轨道上的轨道视频特效 更多...
 
- 构造函数 继承自 NvsTrack
(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的模板资源附件 更多...
 

额外继承的成员函数

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

详细描述

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

视频轨道是容纳视频片段的实体,可以添加、插入、删移多个视频片段。视频轨道随着片段的增加不断延展,而片段与片段之间可进行视频转场设置。 视频轨道添加的视频片段源可以是视频或图片。如果片段源选择的是图片,建议优先给出相册里的路径(localIdentifier)。加载的图片分辨率不能高于1920 * 1080,否则在Live Window 上渲染不出来。 如果加载的图片出现黑屏等现象,此时需考虑缩小分辨率再加载。添加包裹转场时,都得先安装,安装成功后获取packageId才能使用,而内建转场(builtin)只需获取转场名称即可使用。

注:视频片段的索引都是从0开始。

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

函数文档

◆ addAnimatedSticker:duration:animatedStickerPackageId:

- (NvsTrackAnimatedSticker *) addAnimatedSticker: (int64_t)  inPoint
duration: (int64_t)  duration
animatedStickerPackageId: (NSString *)  animatedStickerPackageId 

在轨道上添加动画贴纸

参数
inPoint动画贴纸在轨道上的入点(单位微秒)
duration动画贴纸的显示时长(单位微秒)
animatedStickerPackageId动画贴纸包Id
返回
返回轨道动画贴纸对象
以下情况会返回null:
1.没有动画贴纸功能授权;
2.animatedStickerPackageId参数为空字符串或者null;
3.该动画贴纸包没有安装成功;
4.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
参见
removeAnimatedSticker

◆ addBuiltinTrackVideoFx:duration:videoFxName:

- (NvsTrackVideoFx *) addBuiltinTrackVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
videoFxName: (NSString *)  videoFxName 

在轨道上添加内嵌的轨道视频特效

参数
inPoint轨道视频特效在时间线上的入点(单位微秒)
duration轨道视频特效显示的时长(单位微秒)
videoFxName内嵌的轨道视频特效名字
返回
返回轨道视频特对象
自从
2.15.0

◆ addBuiltinTrackVideoFx:duration:videoFxName:flags:

- (NvsTrackVideoFx *) addBuiltinTrackVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
videoFxName: (NSString *)  videoFxName
flags: (int)  flags 

在轨道上添加内嵌的轨道视频特效

参数
inPoint轨道视频特效在时间线上的入点(单位微秒)
duration轨道视频特效显示的时长(单位微秒)
videoFxName内嵌的轨道视频特效名字
flags标志字段,如无特殊需求,请填写0。请参见 NvsTrackAddFxFlags
返回
返回轨道视频特对象
自从
3.8.0

◆ addCaption:inPoint:duration:captionStylePackageId:

- (NvsTrackCaption *) addCaption: (NSString *)  captionText
inPoint: (int64_t)  inPoint
duration: (int64_t)  duration
captionStylePackageId: (NSString *)  captionStylePackageId 

在轨道上添加字幕

参数
captionText字幕的文字
inPoint字幕在轨道上的起点(单位微秒)
duration字幕显示时长(单位微秒)
captionStylePackageId字幕样式包Id,不存在的话,可以传空字符串或者null
返回
返回轨道字幕对象
以下情况会返回null:
1.没有字幕功能授权;
2.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
参见
removeCaption

◆ addClip:inPoint:

- (NvsVideoClip *) addClip: (NSString *)  filePath
inPoint: (int64_t)  inPoint 

添加片段

参数
filePath片段路径

IOS中,对于导入的音视频片段的路径,有四种方式:

a. 通过ALAssetsLibrary实例导入,片段路径格式如下:"assets-library://asset/asset.mov?id=E0723C86-AA47-409C-B4E2-526D7C2AA9B5&ext=mov";

b. 通过IPod Library库的MPMediaQuery实例导入,片段路径格式如下:"ipod-library://item/item.mp3?id=1217463725835578132";

c. 通过沙河路径路径导入,片段路径格式如下:"/var/mobile/Containers/Data/Documents/tmp/video20170406101714.mp4";

d. IOS 8.0版以后,Photos框架替代ALAssetsLibrary库,通过PHAsset实例导入,片段路径如下:"file:///var/mobile/Media/DCIM/100APPLE/IMG_0646.MP4"。

参数
inPoint片段在时间线上的入点(单位微秒)
返回
返回添加的视频片段对象

对于片段在时间线上的入点与出点的理解,具体请参见裁剪入点与出点(trimIn and trimOut)专题。

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- appendClip:
- insertClip:clipIndex:
- addClip:inPoint:trimIn:trimOut:

◆ addClip:inPoint:trimIn:trimOut:

- (NvsVideoClip *) addClip: (NSString *)  filePath
inPoint: (int64_t)  inPoint
trimIn: (int64_t)  trimIn
trimOut: (int64_t)  trimOut 

添加指定长度的片段

参数
filePath片段路径。对于片段路径方式,请参见addClip:inPoint的参数filePath。
inPoint片段在时间线上的入点(单位微秒)
trimIn片段裁剪入点(单位微秒)
trimOut片段裁剪出点(单位微秒)
返回
返回添加的视频片段对象

使用addClip:inPoint:添加片段时,待添加的片段会在时间线上指定的入点分割当前片段,再从当前指定的入点起,在轨道上按待添加片段的长度删除对应长度的位置里面所包含的片段,然后添加指定时长的片段。如果在对应位置上有空隙,则直接覆盖。

示例如下:

如上图,轨道上有三个视频片段C1、C2、C3,以及待添加的片段C4。C4片段上箭头所指处即为片段裁剪的的入点和出点,轨道上箭头所指即为片段在时间线上的入点,裁剪后指定长度的片段将添加到轨道上。代码实现如下:

   NvsVideoTrack *videoTrack; //videoTrack这里省略创建
   [videoTrack addClip:filepath inPoint:inPoint trimIn:trimIn trimOut:trimOut];//filepath为片段C4的路径,inPoint为图中轨道上箭头所指位置的值,trimIn和trimOut为上图C4片段上箭头所指位置处的值

添加后结果如下:

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参数需要满足(0 <= trimIn < trimOut),如果trimOut大于素材本身长度,后面会以最后一帧播放。
参见
- appendClip:trimIn:trimOut:
- insertClip:trimIn:trimOut:clipIndex:
- addClip:inPoint:

◆ addCompoundCaption:duration:compoundCaptionPackageId:

- (NvsTrackCompoundCaption *) addCompoundCaption: (int64_t)  inPoint
duration: (int64_t)  duration
compoundCaptionPackageId: (NSString *)  compoundCaptionPackageId 

在轨道上添加字幕

参数
inPoint字幕在轨道上的起点(单位微秒)
duration字幕显示时长(单位微秒)
captionStylePackageId字幕样式包Id,不存在的话,可以传空字符串或者null
返回
返回轨道字幕对象
以下情况会返回null:
1.没有复合字幕功能授权;
2.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
自从
2.9.0
参见
removeCompoundCaption

◆ addCustomAnimatedSticker:duration:animatedStickerPackageId:customImagePath:

- (NvsTrackAnimatedSticker *) addCustomAnimatedSticker: (int64_t)  inPoint
duration: (int64_t)  duration
animatedStickerPackageId: (NSString *)  animatedStickerPackageId
customImagePath: (NSString *)  customImagePath 

在轨道上添加自定义动画贴纸

参数
inPoint自定义动画贴纸在轨道上的入点(单位微秒)
duration自定义动画贴纸的显示时长(单位微秒)
animatedStickerPackageId自定义动画贴纸包Id
customImagePath自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像)
返回
返回轨道自定义动画贴纸对象
以下情况会返回null:
1.没有动画贴纸功能授权;
2.animatedStickerPackageId参数为空字符串或者null;
3.该动画贴纸包没有安装成功;
4.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
注意:如果返回值非空,依旧看不到贴纸效果,需要检查customImagePath是否真实存在
参见
removeAnimatedSticker

◆ addCustomPanoramicAnimatedSticker:duration:animatedStickerPackageId:customImagePath:

- (NvsTrackAnimatedSticker *) addCustomPanoramicAnimatedSticker: (int64_t)  inPoint
duration: (int64_t)  duration
animatedStickerPackageId: (NSString *)  animatedStickerPackageId
customImagePath: (NSString *)  customImagePath 

在轨道上添加自定义全景图动画贴纸

参数
inPoint动画贴纸在轨道上的起点(单位微秒)
duration动画贴纸的显示时长(单位微秒)
animatedStickerPackageId动画贴纸资源包ID
customImagePath自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像)
返回
返回轨道动画贴纸对象
以下情况会返回null:
1.没有动画贴纸功能授权或者没有全景编辑功能授权;
2.animatedStickerPackageId参数为空字符串或者null;
3.该动画贴纸包没有安装成功;
4.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
注意:如果返回值非空,依旧看不到贴纸效果,需要检查customImagePath是否真实存在
自从
1.6.0
参见
removeAnimatedSticker

◆ addCustomTrackVideoFx:duration:customVideoFxRender:

- (NvsTrackVideoFx *) addCustomTrackVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
customVideoFxRender: (id< NvsCustomVideoFxRenderer >)  customVideoFxRender 

在轨道上添加自定义轨道视频特效

参数
inPoint轨道视频特效在时间线上的入点(单位微秒)
duration轨道视频特效的时长(单位微秒)
customVideoFxRender用户实现的自定义视频特效渲染器接口
返回
返回轨道视频对象
自从
2.15.0

◆ addModularCaption:inPoint:duration:

- (NvsTrackCaption *) addModularCaption: (NSString *)  captionText
inPoint: (int64_t)  inPoint
duration: (int64_t)  duration 

在轨道上添加模块字幕

参数
captionText字幕的文字
inPoint字幕在轨道上的起点(单位微秒)
duration字幕显示时长(单位微秒)
返回
返回轨道字幕对象
以下情况会返回null:
1.没有字幕功能授权;
2.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
参见
removeCaption

◆ addPackagedTrackVideoFx:duration:videoFxPackageId:

- (NvsTrackVideoFx *) addPackagedTrackVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
videoFxPackageId: (NSString *)  videoFxPackageId 

在轨道上添加资源包形式的轨道视频特效

参数
inPoint轨道视频特效在时间线上的入点(单位微秒)
duration轨道视频特效显示的时长(单位微秒)
videoFxPackageId轨道视频特效资源包Id
返回
返回轨道视频特对象
自从
2.15.0

◆ addPackagedTrackVideoFx:duration:videoFxPackageId:flags:

- (NvsTrackVideoFx *) addPackagedTrackVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
videoFxPackageId: (NSString *)  videoFxPackageId
flags: (int)  flags 

在轨道上添加资源包形式的轨道视频特效

参数
inPoint轨道视频特效在时间线上的入点(单位微秒)
duration轨道视频特效显示的时长(单位微秒)
videoFxPackageId轨道视频特效资源包Id
flags标志字段,如无特殊需求,请填写0。请参见 NvsTrackAddFxFlags
返回
返回轨道视频特对象
自从
3.8.0

◆ addPanoramicAnimatedSticker:duration:animatedStickerPackageId:

- (NvsTrackAnimatedSticker *) addPanoramicAnimatedSticker: (int64_t)  inPoint
duration: (int64_t)  duration
animatedStickerPackageId: (NSString *)  animatedStickerPackageId 

在轨道上添加全景图动画贴纸

参数
inPoint动画贴纸在轨道上的起点(单位微秒)
duration动画贴纸的显示时长(单位微秒)
animatedStickerPackageId动画贴纸资源包ID
返回
返回轨道动画贴纸对象
以下情况会返回null:
1.没有动画贴纸功能授权或者没有全景编辑功能授权;
2.animatedStickerPackageId参数为空字符串或者null;
3.该动画贴纸包没有安装成功;
4.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
自从
1.6.0
参见
removeAnimatedSticker

◆ addPanoramicCaption:inPoint:duration:captionStylePackageId:

- (NvsTrackCaption *) addPanoramicCaption: (NSString *)  captionText
inPoint: (int64_t)  inPoint
duration: (int64_t)  duration
captionStylePackageId: (NSString *)  captionStylePackageId 

在轨道上添加全景图字幕

参数
captionText字幕的文字
inPoint字幕在轨道上的入点(单位微秒)
duration字幕的显示时长(单位微秒)
captionStylePackageId字幕样式包Id,不存在的话,可以传空字符串或者null
返回
返回轨道字幕对象
以下情况会返回null:
1.没有字幕功能授权;
2.如果inPoint小于0或者大于等于当前轨道时长,或者duration不大于0。
自从
1.6.0
参见
removeCaption

◆ addTimelineClip:inPoint:

- (NvsVideoClip *) addTimelineClip: (NvsTimeline *)  timeline
inPoint: (int64_t)  inPoint 

添加时间线片段

参数
timeline待添加的时间线对象
inPoint片段在时间线上的入点(单位微秒)
返回
返回添加的视频片段对象

对于片段在时间线上的入点与出点的理解,具体请参见裁剪入点与出点(trimIn and trimOut)专题。

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- appendTimelineClip:
- insertTimelineClip:clipIndex:
- addTimelineClip:inPoint:trimIn:trimOut:
自从
2.24.0

◆ addTimelineClip:inPoint:trimIn:trimOut:

- (NvsVideoClip *) addTimelineClip: (NvsTimeline *)  timeline
inPoint: (int64_t)  inPoint
trimIn: (int64_t)  trimIn
trimOut: (int64_t)  trimOut 

添加指定长度的片段

参数
timeline待添加时间线对象
inPoint片段在时间线上的入点(单位微秒)
trimIn片段裁剪入点(单位微秒)
trimOut片段裁剪出点(单位微秒)
返回
返回添加的视频片段对象
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参数需要满足(0 <= trimIn < trimOut),如果trimOut大于待添加时间线长度,后面会以最后一帧播放。
参见
- appendTimelineClip:trimIn:trimOut:
- insertTimelineClip:trimIn:trimOut:clipIndex:
- addTimelineClip:inPoint:
自从
2.24.0

◆ appendClip:

- (NvsVideoClip *) appendClip: (NSString *)  filePath

在视频轨道尾部追加片段

参数
filePath片段路径。对于片段路径方式,请参见addClip:inPoint:的参数filePath。
返回
返回追加的视频片段对象

示例如下:

上图中视频轨道上有三个片段C1、C2、C3, 如果在视频轨道尾部追加一个新的片段C4,实现代码:

    NvsVideoTrack *videoTrack;//videoTrack这里省略创建
    [videoTrack appendClip:filepath];//filepath为C4片段的视频文件路径

追加后的结果:

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- insertClip:clipIndex:
- getClipWithIndex:
- appendClip:trimIn:trimOut:

◆ appendClip:trimIn:trimOut:

- (NvsVideoClip *) appendClip: (NSString *)  filePath
trimIn: (int64_t)  trimIn
trimOut: (int64_t)  trimOut 

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

参数
filePath片段路径。对于片段路径方式,请参见addClip:inPoint:的参数filePath。
trimIn片段裁剪入点(单位微秒)
trimOut片段裁剪出点(单位微秒)
返回
返回追加的视频片段对象

对于片段裁剪入点与出点的理解,具体请参见裁剪入点与出点(trimIn and trimOut)专题。

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参数需要满足(0 <= trimIn < trimOut),如果trimOut大于素材本身长度,后面会以最后一帧播放。
参见
- appendClip:
- insertClip:clipIndex:
- getClipWithIndex:

◆ appendTimelineClip:

- (NvsVideoClip *) appendTimelineClip: (NvsTimeline *)  timeline

在视频轨道尾部追加时间线片段

参数
timeline待追加的时间线对象
返回
返回追加的视频片段对象
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- insertTimelineClip:clipIndex:
- getClipWithIndex:
- appendTimelineClip:trimIn:trimOut:
自从
2.24.0

◆ appendTimelineClip:trimIn:trimOut:

- (NvsVideoClip *) appendTimelineClip: (NvsTimeline *)  timeline
trimIn: (int64_t)  trimIn
trimOut: (int64_t)  trimOut 

在轨道尾部追加指定长度的时间线片段

参数
timeline待追加的时间线对象
trimIn片段裁剪入点(单位微秒)
trimOut片段裁剪出点(单位微秒)
返回
返回追加的视频片段对象

对于片段裁剪入点与出点的理解,具体请参见裁剪入点与出点(trimIn and trimOut)专题。

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参数需要满足(0 <= trimIn < trimOut),如果trimOut大于待追加时间线长度,后面会以最后一帧播放。
参见
- appendTimelineClip:
- insertTimelineClip:clipIndex:
- getClipWithIndex:
自从
2.24.0

◆ getAnimatedStickersByTimelinePosition:

- (NSArray *) getAnimatedStickersByTimelinePosition: (int64_t)  timelinePos

根据轨道上的位置获得动画贴纸列表

参数
trackPos轨道上的位置(单位微秒)
返回
返回保存当前位置动画贴纸对象的数组
获取的动画贴纸列表排序规则如下:
1.添加时入点不同,按入点的先后顺序排列;
2.添加时入点相同,按添加动画贴纸的先后顺序排列。
参见
addAnimatedSticker

◆ getCaptionsByTimelinePosition:

- (NSArray *) getCaptionsByTimelinePosition: (int64_t)  timelinePos

根据轨道上的位置获得字幕列表。

参数
trackPos轨道上的位置(单位微秒)
返回
返回当前位置字幕的List集合
获取的字幕列表排序规则如下:
1.添加时字幕入点不同,按入点的先后顺序排列;
2.添加时字幕入点相同,按添加字幕的先后顺序排列。
参见
addCaption

◆ getClipWithIndex:

- (NvsVideoClip *) getClipWithIndex: (unsigned int)  clipIndex

通过索引获取片段对象

参数
clipIndex片段索引。clipIndex的取值范围:[0,clipCount-1]
返回
返回获取的视频片段对象
参见
- getClipWithTimelinePosition:
- appendClip:
- insertClip:clipIndex:

◆ getClipWithTimelinePosition:

- (NvsVideoClip *) getClipWithTimelinePosition: (int64_t)  timelinePos

通过时间获取片段对象

参数
timelinePos时间线上的位置(单位微秒)
返回
返回获取的视频片段对象
参见
- getClipWithIndex:

◆ getCompoundCaptionsByTimelinePosition:

- (NSArray<NvsTrackCompoundCaption*> *) getCompoundCaptionsByTimelinePosition: (int64_t)  timelinePos

根据轨道上的位置获得复合字幕列表

参数
trackPos轨道上的复合位置(单位微秒)
返回
返回当前位置复合字幕的列表
获取的字幕列表排序规则如下:
1.如果字幕入点不同,按入点时间排列
2.如果字幕入点相同,按添加字幕的先后顺序排列。
自从
2.9.0
参见
addCompoundCaption

◆ getFirstAnimatedSticker

- (NvsTrackAnimatedSticker *) getFirstAnimatedSticker

获取轨道上第一个动画贴纸

返回
返回获取的轨道动画贴纸对象
参见
- getLastAnimatedSticker
addAnimatedSticker

◆ getFirstCaption

- (NvsTrackCaption *) getFirstCaption

获取轨道上的第一个字幕

返回
返回获取的轨道字幕对象
参见
- getLastCaption
addCaption

◆ getFirstCompoundCaption

- (NvsTrackCompoundCaption *) getFirstCompoundCaption

获取轨道上的第一个复合字幕

返回
返回获取的轨道复合字幕对象
自从
2.9.0
参见
- getLastCompoundCaption
addCompoundCaption

◆ getFirstTrackVideoFx

- (NvsTrackVideoFx *) getFirstTrackVideoFx

获取轨道上第一个轨道视频特效

返回
返回获取的轨道视频特效对象
自从
2.15.0

◆ getLastAnimatedSticker

- (NvsTrackAnimatedSticker *) getLastAnimatedSticker

获取轨道上最后一个动画贴纸

返回
返回获取的轨道动画贴纸对象
参见
- getFirstAnimatedSticker

◆ getLastCaption

- (NvsTrackCaption *) getLastCaption

获取轨道上的最后一个字幕

返回
返回获取的轨道字幕对象
参见
- getFirstCaption
addCaption

◆ getLastCompoundCaption

- (NvsTrackCompoundCaption *) getLastCompoundCaption

获取轨道上的最后一个复合字幕

返回
返回获取的轨道复合字幕对象
自从
2.9.0
参见
- getFirstCompoundCaption
addCompoundCaption

◆ getLastTrackVideoFx

- (NvsTrackVideoFx *) getLastTrackVideoFx

获取轨道上最后一个轨道视频特效

返回
返回获取的轨道视频特效对象
自从
2.15.0

◆ getNextAnimatedSticker:

- (NvsTrackAnimatedSticker *) getNextAnimatedSticker: (NvsTrackAnimatedSticker *)  animatedSticker

获取轨道当前动画贴纸的后一个动画贴纸

参数
animatedSticker轨道动画贴纸对象
返回
返回获取的轨道动画贴纸对象
参见
getPrevAnimatedSticker

◆ getNextCaption:

- (NvsTrackCaption *) getNextCaption: (NvsTrackCaption *)  caption

获取轨道上的当前字幕的前一个字幕

参数
caption轨道上当前字幕对象
返回
返回获取的轨道字幕对象
参见
getPrevCaption

◆ getNextCompoundCaption:

- (NvsTrackCompoundCaption *) getNextCompoundCaption: (NvsTrackCompoundCaption *)  caption

获取轨道上的当前复合字幕的前一个复合字幕

参数
caption轨道上当前复合字幕对象
返回
返回获取的轨道复合字幕对象
自从
2.9.0
参见
getPrevCompoundCaption

◆ getNextTrackVideoFx:

- (NvsTrackVideoFx *) getNextTrackVideoFx: (NvsTrackVideoFx *)  videoFx

获取轨道上某个轨道视频特效的下一个轨道视频特效

参数
videoFx轨道视频特效对象
返回
返回获取的轨道视频特效对象
自从
2.15.0

◆ getPrevAnimatedSticker:

- (NvsTrackAnimatedSticker *) getPrevAnimatedSticker: (NvsTrackAnimatedSticker *)  animatedSticker

获取轨道当前动画贴纸的前一个动画贴纸

参数
animatedSticker轨道动画贴纸对象
返回
返回获取的轨道动画贴纸对象
参见
getNextAnimatedSticker

◆ getPrevCaption:

- (NvsTrackCaption *) getPrevCaption: (NvsTrackCaption *)  caption

获取轨道上的当前字幕的前一个字幕

参数
caption轨道上当前字幕对象
返回
返回获取的轨道字幕对象
参见
getNextCaption

◆ getPrevCompoundCaption:

- (NvsTrackCompoundCaption *) getPrevCompoundCaption: (NvsTrackCompoundCaption *)  caption

获取轨道上的当前复合字幕的前一个复合字幕

参数
caption轨道上当前复合字幕对象
返回
返回获取的轨道复合字幕对象
自从
2.9.0
参见
getNextCompoundCaption

◆ getPrevTrackVideoFx:

- (NvsTrackVideoFx *) getPrevTrackVideoFx: (NvsTrackVideoFx *)  videoFx

获取轨道上某个轨道视频特效的前一个轨道视频特效

参数
videoFx轨道视频特效对象
返回
返回获取的轨道视频特效对象
自从
2.15.0

◆ getProxyScale

- (NvsRational) getProxyScale

获取当前轨道渲染的代理级别

返回
代理级别
参见
setProxyScale
自从
2.19.1

◆ getTrackVideoFxByPosition:

- (NSArray *) getTrackVideoFxByPosition: (int64_t)  pos

根据轨道上的位置获得轨道视频特效列表

参数
pos轨道上的位置(单位微秒)
返回
返回当前位置轨道视频特效对象的数组
获取的轨道视频特效排序规则如下:
1.添加时入点不同,按入点的先后顺序排列;
2.添加时入点相同,按添加轨道视频特效的先后顺序排列。
自从
2.15.0

◆ getTransitionWithSourceClipIndex:

- (NvsVideoTransition *) getTransitionWithSourceClipIndex: (unsigned int)  srcClipIndex

通过源片段索引获取转场

参数
srcClipIndex源片段索引。注意:如果srcClipIndex 大于等于clipCount - 1,返回对象为空。
返回
返回获取的视频转场对象
参见
- setBuiltinTransition:withName:

◆ insertClip:clipIndex:

- (NvsVideoClip *) insertClip: (NSString *)  filePath
clipIndex: (unsigned int)  clipIndex 

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

参数
filePath片段路径。对于片段路径方式,请参见addClip:inPoint:的参数filePath。
clipIndex指定片段索引
返回
返回插入的视频片段对象

调用insertClip:clipIndex:执行的是前插入即在clipIndex所表示的片段之前进行插入。示例如下:

上图中轨道上有三个视频片段C1、C2、C3,待插入的片段记为C4。如果在C1之前插入,则clipIndex值为0,其它以此类推。相应代码实现如下:

   NvsVideoTrack *videoTrack;                   //videoTrack这里省略创建
   [videoTrack insertClip:filepath clipIndex:0];//filepath为片段C4的路径,clipIndex取值为[0,clipCount-1]

插入后结果:

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
如果clipIndex大于已有片段数量,则会在最后添加。如果clipIndex 等于0,当存在主题片头的时候,返回对象为空。如果clipIndex>=clipCount,此时如果存在主题片尾的话,返回对象为空。
参见
- appendClip:
- getClipWithIndex:
- insertClip:trimIn:trimOut:clipIndex:

◆ insertClip:trimIn:trimOut:clipIndex:

- (NvsVideoClip *) insertClip: (NSString *)  filePath
trimIn: (int64_t)  trimIn
trimOut: (int64_t)  trimOut
clipIndex: (unsigned int)  clipIndex 

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

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

示例如下:

上图中轨道上有三个视频片段C1、C2、C3,以及待插入的片段C4。C4片段上箭头所指处即为片段裁剪的的入点和出点,裁剪后将对应片段插入到轨道上。注意:裁剪入点和出点值必须在此片段的时长范围里,且裁剪入点值必须小于裁剪出点值。实现代码如下:

   NvsVideoTrack *videoTrack; //videoTrack这里省略创建
   [videoTrack insertClip:filepath trimIn:trimIn trimOut:trimOut clipIndex:0];//filepath为片段C4的路径,trimIn和trimOut为上图C4片段上箭头所指位置处的值,clipIndex取值为[0,clipCount-1]

插入后结果:

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参数需要满足(0 <= trimIn < trimOut),如果trimOut大于素材本身长度,后面会以最后一帧播放。
如果clipIndex大于已有片段数量,则会在最后添加。如果clipIndex 等于0,当存在主题片头的时候,返回对象为空。如果clipIndex>=clipCount,此时如果存在主题片尾的话,返回对象为空。
参见
- appendClip:trimIn:trimOut:
- insertClip:clipIndex:
- getClipWithIndex:

◆ insertTimelineClip:clipIndex:

- (NvsVideoClip *) insertTimelineClip: (NvsTimeline *)  timeline
clipIndex: (unsigned int)  clipIndex 

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

参数
timeline待插入的时间线对象
clipIndex指定片段索引
返回
返回插入的视频片段对象
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
如果clipIndex大于已有片段数量,则会在最后添加。如果clipIndex 等于0,当存在主题片头的时候,返回对象为空。如果clipIndex>=clipCount,此时如果存在主题片尾的话,返回对象为空。
参见
- appendTimelineClip:
- getClipWithIndex:
- insertTimelineClip:trimIn:trimOut:clipIndex:
自从
2.24.0

◆ insertTimelineClip:trimIn:trimOut:clipIndex:

- (NvsVideoClip *) insertTimelineClip: (NvsTimeline *)  timeline
trimIn: (int64_t)  trimIn
trimOut: (int64_t)  trimOut
clipIndex: (unsigned int)  clipIndex 

在轨道上指定片段索引处插入指定长度的是时间线片段

参数
timeline待插入的时间线对象
trimIn片段裁剪入点(单位微秒)
trimOut片段裁剪出点(单位微秒)
clipIndex指定片段索引
返回
返回插入的视频片段对象
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参数需要满足(0 <= trimIn < trimOut),如果trimOut大于待插入时间线长度,后面会以最后一帧播放。
如果clipIndex大于已有片段数量,则会在最后添加。如果clipIndex 等于0,当存在主题片头的时候,返回对象为空。如果clipIndex>=clipCount,此时如果存在主题片尾的话,返回对象为空。
参见
- appendTimelineClip:trimIn:trimOut:
- insertTimelineClip:clipIndex:
- getClipWithIndex:
自从
2.24.0

◆ isOriginalRender

- (BOOL) isOriginalRender

获取是否开启了原始比例渲染的模式

返回
返回是否开启
参见
setEnableOriginalRender

◆ removeAnimatedSticker:

- (NvsTrackAnimatedSticker *) removeAnimatedSticker: (NvsTrackAnimatedSticker *)  animatedSticker

移除轨道上的动画贴纸

参数
animatedSticker要移除的动画贴纸对象
返回
返回下一个轨道动画贴纸对象
参见
addAnimatedSticker

◆ removeCaption:

- (NvsTrackCaption *) removeCaption: (NvsTrackCaption *)  caption

移除轨道上的字幕

参数
caption要移除的轨道字幕对象
返回
返回下一个轨道字幕对象
参见
addCaption

◆ removeCompoundCaption:

- (NvsTrackCompoundCaption *) removeCompoundCaption: (NvsTrackCompoundCaption *)  caption

移除轨道上的复合字幕

参数
caption要移除的轨道复合字幕对象
返回
返回下一个轨道复合字幕对象
自从
2.9.0
参见
addCompoundCaption

◆ removeTrackVideoFx:

- (NvsTrackVideoFx *) removeTrackVideoFx: (NvsTrackVideoFx *)  videoFx

移除轨道上的轨道视频特效

参数
videoFx要移除的轨道视频特效对象
返回
返回被删除的轨道视频特效的下一个轨道视频特效对象
自从
2.15.0

◆ setBuiltinTransition:withName:

- (NvsVideoTransition *) setBuiltinTransition: (unsigned int)  srcClipIndex
withName: (NSString *)  transitionName 

设置内嵌式转场

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

示例如下:

设置视频转场的作用是为了片段与片段间的平缓过渡,避免视频预览时出现跳跃。转场必须设置在相互连接的片段间,而在有空隙的片段之间,则不能设置视频转场。 如上图中轨道上有四个视频片段C1、C、C3、C4,在C1和C2之间可以设置一个内嵌式转场,而C3和C4则不能设置视频转场。实现代码:

  NvsVideoTrack *videoTrack;
  [videoTrack setBuiltinTransition:0 withName:transitionName];

设置转场后:

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

◆ setCustomVideoTransition:withCustomRender:

- (NvsVideoTransition *) setCustomVideoTransition: (unsigned int)  srcClipIndex
withCustomRender: (id< NvsCustomVideoTransitionRenderer >)  customVideoFxRender 

设置自定义转场

参数
srcClipIndex源视频片段索引。注意:如果srcClipIndex 大于等于clipCount - 1,返回对象为空。
customVideoTransitionRender用户自定义转场特效
返回
返回设置的视频转场对象
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
setBuiltinTransition

◆ setEnableOriginalRender:

- (void) setEnableOriginalRender: (BOOL)  enable

开启按照视频轨道的原始比例进行特效渲染

参数
enable是否开启
参见
- isOriginalRender

◆ setPackagedTransition:withPackageId:

- (NvsVideoTransition *) setPackagedTransition: (unsigned int)  srcClipIndex
withPackageId: (NSString *)  packageId 

设置包裹转场

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

◆ setProxyScale:

- (void) setProxyScale: (NvsRational proxyScale

设置当前轨道渲染的代理级别

参数
proxyScale代理级别
参见
isProxyScaleDisable
自从
2.19.1

◆ updateAudioForTrackVideoFx

- (void) updateAudioForTrackVideoFx

更新当前轨道特效中携带的音频信息。

返回
无返回值。
自从
3.8.0

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