美摄SDK For iOS  3.10.1
构造函数 | 属性 | 所有成员列表
NvsTimeline类 参考

时间线,编辑场景的时间轴实体 更多...

#import <NvsTimeline.h>

类 NvsTimeline 继承关系图:
NvsObject

构造函数

(int) - getCreationFlags
 获取创建timeline的flag NvsCreateTimelineTypeFlag 更多...
 
(NvsVideoTrack *) - appendVideoTrack
 追加视频轨道 更多...
 
(NvsAudioTrack *) - appendAudioTrack
 追加音频轨道 更多...
 
(NvsVideoTrack *) - insertVideoTrack:
 插入视频轨道 更多...
 
(NvsAudioTrack *) - insertAudioTrack:
 插入音频轨道 更多...
 
(BOOL) - removeVideoTrack:
 移除视频轨道 更多...
 
(BOOL) - removeAudioTrack:
 移除音频轨道 更多...
 
(unsigned int) - videoTrackCount
 获取视频轨道数量 更多...
 
(unsigned int) - audioTrackCount
 获取音频轨道数量 更多...
 
(NvsVideoTrack *) - getVideoTrackByIndex:
 通过索引获取视频轨道 更多...
 
(NvsAudioTrack *) - getAudioTrackByIndex:
 通过索引获取音频轨道 更多...
 
(BOOL) - changeVideoSize:videoHeight:
 改变时间线的视频尺寸
注意:如果当前时间线已经被连接到了一个SurfaceTexture上,那么请在改变时间线的视频尺寸之前 先断开当前时间线与SurfaceTexture的连接,改变视频尺寸后再重现连接那个SurfaceTexture! 更多...
 
(BOOL) - changeVideoBitDepth:
 改变时间线的视频位深度 更多...
 
(void) - setCaptionBoundingRectInActualMode:
 设置字幕的边框为文字的实际包络大小 更多...
 
(void) - enableRenderOrderByZValue:
 开启使用Z值作为渲染顺序 重要提示:参与排序的有时间线字幕,复合字幕,模块字幕,动画贴纸和时间线滤镜 如果同一种类型中的Z值是相同的,和没有开启这个属性的排序方式是一致的 如果不同类型的Z值是相同的,排列顺序为:时间线滤镜->动画贴纸->时间线字幕(包含模块字幕)->复合字幕 更多...
 
(BOOL) - isRenderOrderByZValueEnabled
 是否开启使用Z值作为渲染顺序 更多...
 
(NvsTimelineCaption *) - getFirstCaption
 获取时间线上的第一个字幕 更多...
 
(NvsTimelineCaption *) - getLastCaption
 获取时间线上的最后一个字幕 更多...
 
(NvsTimelineCaption *) - getPrevCaption:
 获取时间线上的当前字幕的前一个字幕 更多...
 
(NvsTimelineCaption *) - getNextCaption:
 获取时间线上的当前字幕的前一个字幕 更多...
 
(NSArray *) - getCaptionsByTimelinePosition:
 根据时间线上的位置获得字幕列表 更多...
 
(NvsTimelineCaption *) - addCaption:inPoint:duration:captionStylePackageId:
 在时间线上添加字幕 更多...
 
(NvsTimelineCaption *) - addPanoramicCaption:inPoint:duration:captionStylePackageId:
 在时间线上添加全景图字幕 更多...
 
(NvsTimelineCaption *) - addModularCaption:inPoint:duration:
 在时间线上添加模块字幕 更多...
 
(NvsTimelineCaption *) - removeCaption:
 移除时间线上的字幕 更多...
 
(NvsTimelineCompoundCaption *) - getFirstCompoundCaption
 获取时间线上的第一个复合字幕 更多...
 
(NvsTimelineCompoundCaption *) - getLastCompoundCaption
 获取时间线上的最后一个复合字幕 更多...
 
(NvsTimelineCompoundCaption *) - getPrevCompoundCaption:
 获取时间线上的当前复合字幕的前一个复合字幕 更多...
 
(NvsTimelineCompoundCaption *) - getNextCompoundCaption:
 获取时间线上的当前复合字幕的前一个复合字幕 更多...
 
(NSArray< NvsTimelineCompoundCaption * > *) - getCompoundCaptionsByTimelinePosition:
 根据时间线上的位置获得复合字幕列表 更多...
 
(NvsTimelineCompoundCaption *) - addCompoundCaption:duration:compoundCaptionPackageId:
 在时间线上添加字幕 更多...
 
(NvsTimelineCompoundCaption *) - addPanoramicCompoundCaption:duration:compoundCaptionPackageId:
 在时间线上添加VR复合字幕 更多...
 
(NvsTimelineCompoundCaption *) - removeCompoundCaption:
 移除时间线上的复合字幕 更多...
 
(NvsTimelineAnimatedSticker *) - getFirstAnimatedSticker
 获取时间线上第一个动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - getLastAnimatedSticker
 获取时间线上最后一个动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - getPrevAnimatedSticker:
 获取时间线当前动画贴纸的前一个动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - getNextAnimatedSticker:
 获取时间线当前动画贴纸的后一个动画贴纸 更多...
 
(NSArray *) - getAnimatedStickersByTimelinePosition:
 根据时间线上的位置获得动画贴纸列表 更多...
 
(NvsTimelineAnimatedSticker *) - addAnimatedSticker:duration:animatedStickerPackageId:
 在时间线上添加动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - addPanoramicAnimatedSticker:duration:animatedStickerPackageId:
 在时间线上添加全景图动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - addCustomAnimatedSticker:duration:animatedStickerPackageId:customImagePath:
 在时间线上添加自定义动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - addCustomPanoramicAnimatedSticker:duration:animatedStickerPackageId:customImagePath:
 在时间线上添加自定义全景图动画贴纸 更多...
 
(NvsTimelineAnimatedSticker *) - removeAnimatedSticker:
 移除时间线上的动画贴纸 更多...
 
(NvsTimelineVideoFx *) - getFirstTimelineVideoFx
 获取时间线上第一个时间线视频特效 更多...
 
(NvsTimelineVideoFx *) - getLastTimelineVideoFx
 获取时间线上最后一个时间线视频特效 更多...
 
(NvsTimelineVideoFx *) - getPrevTimelineVideoFx:
 获取时间线上某个时间线视频特效的前一个时间线视频特效 更多...
 
(NvsTimelineVideoFx *) - getNextTimelineVideoFx:
 获取时间线上某个时间线视频特效的下一个时间线视频特效 更多...
 
(NSArray *) - getTimelineVideoFxByTimelinePosition:
 根据时间线上的位置获得时间线视频特效列表 更多...
 
(NvsTimelineVideoFx *) - addBuiltinTimelineVideoFx:duration:videoFxName:
 在时间线上添加内嵌的时间线视频特效 更多...
 
(NvsTimelineVideoFx *) - addPackagedTimelineVideoFx:duration:videoFxPackageId:
 在时间线上添加资源包形式的时间线视频特效 更多...
 
(NvsTimelineVideoFx *) - addCustomTimelineVideoFx:duration:customVideoFxRender:
 在时间线上添加自定义时间线视频特效 更多...
 
(NvsTimelineVideoFx *) - removeTimelineVideoFx:
 移除时间线上的时间线视频特效 更多...
 
(NSString *) - getCurrentThemeId
 获得当前主题的id 更多...
 
(BOOL) - applyTheme:
 对当前时间线应用主题(主题是相对于整个时间线而言) 更多...
 
(void) - removeCurrentTheme
 移除当前主题 更多...
 
(void) - setThemeTitleCaptionText:
 设置主题片头字幕文本 更多...
 
(void) - setThemeTrailerCaptionText:
 设置主题片尾字幕文本 更多...
 
(void) - setThemeMusicVolumeGain:rightVolumeGain:
 设置主题音乐音量 更多...
 
(void) - getThemeMusicVolumeGain:rightVolumeGain:
 获取主题音乐音量 更多...
 
(bool) - addWatermark:displayWidth:displayHeight:opacity:position:marginX:marginY:
 添加水印 更多...
 
(void) - deleteWatermark
 删除已添加的水印 更多...
 
(bool) - setWatermarkOpacity:
 设置水印不透明度 更多...
 
(bool) - setTimelineEndingLogo:displayWidth:displayHeight:centerX:centerY:
 设置timeline结尾的Logo特效,时长是1s钟 更多...
 
(void) - removeTimelineEndingLogo
 移除已添加的timeline结尾的logo特效 更多...
 
(void) - setPlaybackRateControl:
 
(NSArray *) - getPlaybackRateControl
 
(BOOL) - moveVideoTrackIndex:dstTrackIndex:
 移动视频轨道。移动之后,所有视频轨道会从0开始重新设置index 更多...
 
(NvsTimelineGraphCompositor *) - getFirstTimelineGraphCompositor
 获取时间线上第一个图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - getLastTimelineGraphCompositor
 获取时间线上最后一个图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - getPrevTimelineGraphCompositor:
 获取时间线上某个图式合成器的前一个图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - getNextTimelineGraphCompositor:
 获取时间线上某个图式合成器的下一个图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - getTimelineGraphCompositorByTimelinePosition:
 根据时间线上的位置获得图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - addTimelineGraphCompositor:duration:graphDescStr:
 在时间线上添加一个图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - addTimelineGraphCompositor:duration:graphDescStr:buddyTrackIndex:
 在时间线上添加一个图式合成器 更多...
 
(NvsTimelineGraphCompositor *) - removeTimelineGraphCompositor:
 移除时间线上的图式合成器 更多...
 
(unsigned int) - creationFlags
 获取创建timeline的标志 更多...
 
(bool) - applyThemeTemplate:
 应用自适应时长模版. 更多...
 
(NSArray< NvsCaptionBoundingVerticesInfo * > *) - getCaptionsBoundingVerticesRecursively:timelinePosition:
 递归获取该时间线下所有字幕的外框顶点坐标(不包含复合字幕) 更多...
 
(NSArray< NvsClipBoundingVerticesInfo * > *) - getVideoClipBoundingVerticesRecursively:
 递归获取该时间线下所有片段的外框顶点坐标 更多...
 
- 构造函数 继承自 NvsObject
(void) - setAttachment:forKey:
 给NvsObject对象添加附件,用来标识NvsObject的对象或者用于其他用途 更多...
 
(void) - setTemplateAttachment:forKey:
 为NvsObject对象添加模板资源的附加数据,用来标识NvsObject的模板数据 更多...
 
(NSObject *) - getAttachment:
 获取已经添加的附件 更多...
 
(NSString *) - getTemplateAttachment:
 获取NvsObject的模板资源附件 更多...
 

属性

NvsVideoResolution videoRes
 视频解析度(图像宽高及横纵比) 更多...
 
NvsAudioResolution audioRes
 音频解析度(采样率、采样格式及通道数) 更多...
 
NvsRational videoFps
 视频帧率 更多...
 
int64_t duration
 时间线的时长(单位微秒) 更多...
 
int64_t audioFadeOutDuration
 音频淡出时长(单位微秒) 更多...
 

详细描述

时间线,编辑场景的时间轴实体

时间线由轨道组成,可视作一系列音视频轨道的集合。在时间线上可添加或者移除多条视频轨道和音轨轨道,多条轨道之间是相互叠加合成的关系。 当编辑视频时,根据需要还会添加上时间线字幕,主题以及相应的动画贴纸,以制作出美观的视频。另外,添加素材资源包(主题包,动画贴纸包,字幕样式包,时间线特效包等), 都得先安装,安装成功后获取packageId才能使用,而内建时间线特效(builtin)只需获取特效名称即可使用。

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

函数文档

◆ addAnimatedSticker:duration:animatedStickerPackageId:

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

在时间线上添加动画贴纸

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

◆ addBuiltinTimelineVideoFx:duration:videoFxName:

- (NvsTimelineVideoFx *) addBuiltinTimelineVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
videoFxName: (NSString *)  videoFxName 

在时间线上添加内嵌的时间线视频特效

参数
inPoint时间线视频特效在时间线上的入点(单位微秒)
duration时间线视频特效显示的时长(单位微秒)
videoFxName内嵌的时间线视频特效名字
返回
返回时间线视频特对象
以下情况会返回nil:
1.videoFxName为空字符串或者nil;
2.videoFxName不是内嵌滤镜;
3.如果inPoint小于0或者大于等于当前时间线时长,或者duration不大于0。

◆ addCaption:inPoint:duration:captionStylePackageId:

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

在时间线上添加字幕

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

◆ addCompoundCaption:duration:compoundCaptionPackageId:

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

在时间线上添加字幕

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

◆ addCustomAnimatedSticker:duration:animatedStickerPackageId:customImagePath:

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

在时间线上添加自定义动画贴纸

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

◆ addCustomPanoramicAnimatedSticker:duration:animatedStickerPackageId:customImagePath:

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

在时间线上添加自定义全景图动画贴纸

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

◆ addCustomTimelineVideoFx:duration:customVideoFxRender:

- (NvsTimelineVideoFx *) addCustomTimelineVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
customVideoFxRender: (id< NvsCustomVideoFxRenderer >)  customVideoFxRender 

在时间线上添加自定义时间线视频特效

参数
inPoint时间线视频特效在时间线上的入点(单位微秒)
duration时间线视频特效的时长(单位微秒)
customVideoFxRender用户实现的自定义视频特效渲染器接口
返回
返回时间线视频对象
以下情况会返回nil:
1.没有滤镜功能授权;
2.customVideoFxRender为nil;
3.如果inPoint小于0或者大于等于当前时间线时长,或者duration不大于0。
自从
1.7.0

◆ addModularCaption:inPoint:duration:

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

在时间线上添加模块字幕

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

◆ addPackagedTimelineVideoFx:duration:videoFxPackageId:

- (NvsTimelineVideoFx *) addPackagedTimelineVideoFx: (int64_t)  inPoint
duration: (int64_t)  duration
videoFxPackageId: (NSString *)  videoFxPackageId 

在时间线上添加资源包形式的时间线视频特效

参数
inPoint时间线视频特效在时间线上的入点(单位微秒)
duration时间线视频特效显示的时长(单位微秒)
videoFxPackageId时间线视频特效资源包Id
返回
返回时间线视频特对象
以下情况会返回nil:
1.没有timeline特效功能授权,如果是粒子特效,就可能是没有粒子功能授权;
2.videoFxPackageId参数为空字符串或者nil;
3.该特效包没有安装成功;
4.如果inPoint小于0或者大于等于当前时间线时长,或者duration不大于0。

◆ addPanoramicAnimatedSticker:duration:animatedStickerPackageId:

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

在时间线上添加全景图动画贴纸

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

◆ addPanoramicCaption:inPoint:duration:captionStylePackageId:

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

在时间线上添加全景图字幕

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

◆ addPanoramicCompoundCaption:duration:compoundCaptionPackageId:

- (NvsTimelineCompoundCaption *) addPanoramicCompoundCaption: (int64_t)  inPoint
duration: (int64_t)  duration
compoundCaptionPackageId: (NSString *)  compoundCaptionPackageId 

在时间线上添加VR复合字幕

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

◆ addTimelineGraphCompositor:duration:graphDescStr:

- (NvsTimelineGraphCompositor *) addTimelineGraphCompositor: (int64_t)  inPoint
duration: (int64_t)  duration
graphDescStr: (NSString *)  graphDescStr 

在时间线上添加一个图式合成器

参数
inPoint图式合成器在时间线上的入点(单位微秒)
duration图式合成器的时长(单位微秒)
graphDescStr图式合成器的描述信息
返回
返回图式合成器对象
自从
3.3.0

◆ addTimelineGraphCompositor:duration:graphDescStr:buddyTrackIndex:

- (NvsTimelineGraphCompositor *) addTimelineGraphCompositor: (int64_t)  inPoint
duration: (int64_t)  duration
graphDescStr: (NSString *)  graphDescStr
buddyTrackIndex: (int)  buddyTrackIndex 

在时间线上添加一个图式合成器

参数
inPoint图式合成器在时间线上的入点(单位微秒)
duration图式合成器的时长(单位微秒)
graphDescStr图式合成器的描述信息
buddyTrackIndex伴侣视频帧轨道序号
返回
返回图式合成器对象
自从
3.3.1

◆ addWatermark:displayWidth:displayHeight:opacity:position:marginX:marginY:

- (bool) addWatermark: (NSString *)  watermarkFilePath
displayWidth: (int)  displayWidth
displayHeight: (int)  displayHeight
opacity: (float)  opacity
position: (int)  position
marginX: (int)  marginX
marginY: (int)  marginY 

添加水印

参数
watermarkFilePath水印文件的路径,须为PNG、JPG、CAF文件
displayWidth水印在timeline中显示的宽度,为0则使用图片文件的宽度
displayHeight水印在timeline中显示的高度,为0则使用图片文件的高度
opacity水印的不透明度, 取值范围 0~1
position水印的位置,请参见 NvsTimelineWatermarkPosition
marginX水印在X方向的边距
marginY水印在Y方向的边距
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- deleteWatermark:
- setWatermarkOpacity:

◆ appendAudioTrack

- (NvsAudioTrack *) appendAudioTrack

追加音频轨道

返回
返回追加的音频轨道对象,当添加第二个以上的音频轨道时,可能会由于没有多音频轨道授权导致返回nil
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- removeAudioTrack:
- audioTrackCount
- getAudioTrackByIndex:

◆ appendVideoTrack

- (NvsVideoTrack *) appendVideoTrack

追加视频轨道

返回
返回追加的视频轨道对象,当添加第二个以上的视频轨道时,可能会由于没有多视频轨道授权导致返回nil
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- removeVideoTrack:
- videoTrackCount
- getVideoTrackByIndex:

◆ applyTheme:

- (BOOL) applyTheme: (NSString *)  themeId

对当前时间线应用主题(主题是相对于整个时间线而言)

对于主题,可能包含有片头或片尾,或片头片尾都有,也有可能都没有。应用含有片头或片尾的主题时,片头和片尾都被视作一个clip,从而导致clip数量的增加。使用此接口时请注意判断片段的数量。

参数
themeId主题包裹的id(如果themeId为空字符串或者nil,将会移除当前的主题)
返回
判断是否应用主题成功。返回YES则主题运用成功,NO则运用失败。
以下情况会返回NO:
1.没有主题功能授权;
2.主题包安装失败;
3.timeline上没有视频轨道;
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- getCurrentThemeId
- removeCurrentTheme

◆ applyThemeTemplate:

- (bool) applyThemeTemplate: (NSString *)  templateId

应用自适应时长模版.

参数
templateId模板uuid
返回
是否成功应用.
自从
3.5.0

◆ audioTrackCount

- (unsigned int) audioTrackCount

获取音频轨道数量

返回
返回音频轨道的数量
参见
- appendAudioTrack
- removeAudioTrack:

◆ changeVideoBitDepth:

- (BOOL) changeVideoBitDepth: (NvsVideoResolutionBitDepth newBitDepth

改变时间线的视频位深度

参数
newBitDepth新的位深度
返回
返回值表示改变是否成功。如果当前授权不支持HDR编辑,返回false
自从
2.23.0

◆ changeVideoSize:videoHeight:

- (BOOL) changeVideoSize: (int)  videoWidth
videoHeight: (int)  videoHeight 

改变时间线的视频尺寸
注意:如果当前时间线已经被连接到了一个SurfaceTexture上,那么请在改变时间线的视频尺寸之前 先断开当前时间线与SurfaceTexture的连接,改变视频尺寸后再重现连接那个SurfaceTexture!

参数
videoWidth新的视频宽度(目前要求传入的图像宽度值是4的倍数)
videoHeight新的视频高度(目前要求传入的图像高度值是2的倍数)
返回
返回值表示改变是否成功。如果传入的宽或者高小于0或者宽度不是4的倍数高度不是2的倍数,返回false
自从
2.5.0

◆ creationFlags

- (unsigned int) creationFlags

获取创建timeline的标志

返回
返回创建timeline的标志
自从
3.4.2

◆ deleteWatermark

- (void) deleteWatermark

删除已添加的水印

警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- addWatermark:displayWidth:displayHeight:opacity:position:marginX:marginY:
- setWatermarkOpacity:

◆ enableRenderOrderByZValue:

- (void) enableRenderOrderByZValue: (BOOL)  enable

开启使用Z值作为渲染顺序 重要提示:参与排序的有时间线字幕,复合字幕,模块字幕,动画贴纸和时间线滤镜 如果同一种类型中的Z值是相同的,和没有开启这个属性的排序方式是一致的 如果不同类型的Z值是相同的,排列顺序为:时间线滤镜->动画贴纸->时间线字幕(包含模块字幕)->复合字幕

参数
enable是否开启
自从
2.17.0

◆ getAnimatedStickersByTimelinePosition:

- (NSArray *) getAnimatedStickersByTimelinePosition: (int64_t)  timelinePos

根据时间线上的位置获得动画贴纸列表

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

◆ getAudioTrackByIndex:

- (NvsAudioTrack *) getAudioTrackByIndex: (unsigned int)  trackIndex

通过索引获取音频轨道

参数
trackIndex音频轨道索引
返回
返回获取的音频轨道对象,如果trackIndex小于0或者大于等于当前轨道数量,则返回nil
参见
- appendAudioTrack
- audioTrackCount
- removeAudioTrack:

◆ getCaptionsBoundingVerticesRecursively:timelinePosition:

- (NSArray<NvsCaptionBoundingVerticesInfo*>*) getCaptionsBoundingVerticesRecursively: (NvsBoundingType boundingType
timelinePosition: (int64_t)  timelinePosition 

递归获取该时间线下所有字幕的外框顶点坐标(不包含复合字幕)

参数
timelinePostion当前时间线时间。
返回
返回的所有字幕外框顶点坐标。

◆ getCaptionsByTimelinePosition:

- (NSArray *) getCaptionsByTimelinePosition: (int64_t)  timelinePos

根据时间线上的位置获得字幕列表

参数
timelinePos时间线上的位置(单位微秒)
返回
返回当前位置字幕的数组列表
获取的字幕列表排序规则如下:
1.添加时字幕入点不同,按入点的先后顺序排列;
2.添加时字幕入点相同,按添加字幕的先后顺序排列。
参见
- addCaption:inPoint:duration:captionStylePackageId:

◆ getCompoundCaptionsByTimelinePosition:

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

根据时间线上的位置获得复合字幕列表

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

◆ getCreationFlags

- (int) getCreationFlags

获取创建timeline的flag NvsCreateTimelineTypeFlag

返回
返回timeline的flag

◆ getCurrentThemeId

- (NSString *) getCurrentThemeId

获得当前主题的id

返回
当前主题id,若无主题返回nil。
参见
- applyTheme:
- removeCurrentTheme

◆ getFirstAnimatedSticker

- (NvsTimelineAnimatedSticker *) getFirstAnimatedSticker

获取时间线上第一个动画贴纸

返回
返回获取的时间线动画贴纸对象
参见
- getLastAnimatedSticker
- addAnimatedSticker:duration:animatedStickerPackageId:

◆ getFirstCaption

- (NvsTimelineCaption *) getFirstCaption

获取时间线上的第一个字幕

返回
返回获取的时间线字幕对象
参见
- getLastCaption
- addCaption:inPoint:duration:captionStylePackageId:

◆ getFirstCompoundCaption

- (NvsTimelineCompoundCaption *) getFirstCompoundCaption

获取时间线上的第一个复合字幕

返回
返回获取的时间线复合字幕对象
自从
2.9.0
参见
- getLastCompoundCaption
addCompoundCaption

◆ getFirstTimelineGraphCompositor

- (NvsTimelineGraphCompositor *) getFirstTimelineGraphCompositor

获取时间线上第一个图式合成器

返回
返回获取的时间线图式合成器对象
自从
3.3.0

◆ getFirstTimelineVideoFx

- (NvsTimelineVideoFx *) getFirstTimelineVideoFx

获取时间线上第一个时间线视频特效

返回
返回获取的时间线视频特效对象

◆ getLastAnimatedSticker

- (NvsTimelineAnimatedSticker *) getLastAnimatedSticker

获取时间线上最后一个动画贴纸

返回
返回获取的时间线动画贴纸对象
参见
- getFirstAnimatedSticker

◆ getLastCaption

- (NvsTimelineCaption *) getLastCaption

获取时间线上的最后一个字幕

返回
返回获取的时间线字幕对象
参见
- getFirstCaption
- addCaption:inPoint:duration:captionStylePackageId:

◆ getLastCompoundCaption

- (NvsTimelineCompoundCaption *) getLastCompoundCaption

获取时间线上的最后一个复合字幕

返回
返回获取的时间线复合字幕对象
自从
2.9.0
参见
- getFirstCompoundCaption
addCompoundCaption

◆ getLastTimelineGraphCompositor

- (NvsTimelineGraphCompositor *) getLastTimelineGraphCompositor

获取时间线上最后一个图式合成器

返回
返回获取的图式合成器对象
自从
3.3.0

◆ getLastTimelineVideoFx

- (NvsTimelineVideoFx *) getLastTimelineVideoFx

获取时间线上最后一个时间线视频特效

返回
返回获取的时间线视频特效对象

◆ getNextAnimatedSticker:

- (NvsTimelineAnimatedSticker *) getNextAnimatedSticker: (NvsTimelineAnimatedSticker *)  animatedSticker

获取时间线当前动画贴纸的后一个动画贴纸

参数
animatedSticker时间线动画贴纸对象
返回
返回获取的时间线动画贴纸对象
参见
- getPrevAnimatedSticker:

◆ getNextCaption:

- (NvsTimelineCaption *) getNextCaption: (NvsTimelineCaption *)  caption

获取时间线上的当前字幕的前一个字幕

参数
caption时间线上当前字幕对象
返回
返回获取的时间线字幕对象
参见
- getPrevCaption:

◆ getNextCompoundCaption:

- (NvsTimelineCompoundCaption *) getNextCompoundCaption: (NvsTimelineCompoundCaption *)  caption

获取时间线上的当前复合字幕的前一个复合字幕

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

◆ getNextTimelineGraphCompositor:

- (NvsTimelineGraphCompositor *) getNextTimelineGraphCompositor: (NvsTimelineGraphCompositor *)  graphCompositor

获取时间线上某个图式合成器的下一个图式合成器

参数
graphCompositor图式合成器对象
返回
返回获取的图式合成器对象
自从
3.3.0

◆ getNextTimelineVideoFx:

- (NvsTimelineVideoFx *) getNextTimelineVideoFx: (NvsTimelineVideoFx *)  videoFx

获取时间线上某个时间线视频特效的下一个时间线视频特效

参数
videoFx时间线视频特效对象
返回
返回获取的时间线视频特效对象

◆ getPlaybackRateControl

- (NSArray *) getPlaybackRateControl

◆ getPrevAnimatedSticker:

- (NvsTimelineAnimatedSticker *) getPrevAnimatedSticker: (NvsTimelineAnimatedSticker *)  animatedSticker

获取时间线当前动画贴纸的前一个动画贴纸

参数
animatedSticker时间线动画贴纸对象
返回
返回获取的时间线动画贴纸对象
参见
- getNextAnimatedSticker:

◆ getPrevCaption:

- (NvsTimelineCaption *) getPrevCaption: (NvsTimelineCaption *)  caption

获取时间线上的当前字幕的前一个字幕

参数
caption时间线上当前字幕对象
返回
返回获取的时间线字幕对象
参见
- getNextCaption:

◆ getPrevCompoundCaption:

- (NvsTimelineCompoundCaption *) getPrevCompoundCaption: (NvsTimelineCompoundCaption *)  caption

获取时间线上的当前复合字幕的前一个复合字幕

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

◆ getPrevTimelineGraphCompositor:

- (NvsTimelineGraphCompositor *) getPrevTimelineGraphCompositor: (NvsTimelineGraphCompositor *)  graphCompositor

获取时间线上某个图式合成器的前一个图式合成器

参数
graphCompositor图式合成器
返回
返回获取的图式合成器对象
自从
3.3.0

◆ getPrevTimelineVideoFx:

- (NvsTimelineVideoFx *) getPrevTimelineVideoFx: (NvsTimelineVideoFx *)  videoFx

获取时间线上某个时间线视频特效的前一个时间线视频特效

参数
videoFx时间线视频特效对象
返回
返回获取的时间线视频特效对象

◆ getThemeMusicVolumeGain:rightVolumeGain:

- (void) getThemeMusicVolumeGain: (float *)  leftVolumeGain
rightVolumeGain: (float *)  rightVolumeGain 

获取主题音乐音量

参数
leftVolumeGain输出左声道值
rightVolumeGain输出左声道值
参见
- getThemeMusicVolumeGain:rightVolumeGain:

◆ getTimelineGraphCompositorByTimelinePosition:

- (NvsTimelineGraphCompositor *) getTimelineGraphCompositorByTimelinePosition: (int64_t)  timelinePos

根据时间线上的位置获得图式合成器

参数
timelinePos时间线上的位置(单位微秒)
返回
返回当前位置图式合成器对象
自从
3.3.0

◆ getTimelineVideoFxByTimelinePosition:

- (NSArray *) getTimelineVideoFxByTimelinePosition: (int64_t)  timelinePos

根据时间线上的位置获得时间线视频特效列表

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

◆ getVideoClipBoundingVerticesRecursively:

- (NSArray<NvsClipBoundingVerticesInfo*>*) getVideoClipBoundingVerticesRecursively: (int64_t)  timelinePosition

递归获取该时间线下所有片段的外框顶点坐标

参数
timelinePostion当前时间线时间。
返回
返回的所有字幕外框顶点坐标。

◆ getVideoTrackByIndex:

- (NvsVideoTrack *) getVideoTrackByIndex: (unsigned int)  trackIndex

通过索引获取视频轨道

参数
trackIndex视频轨道索引
返回
返回获取的视频轨道对象,如果trackIndex小于0或者大于等于当前轨道数量,则返回nil
参见
- appendVideoTrack
- videoTrackCount
- removeVideoTrack:

◆ insertAudioTrack:

- (NvsAudioTrack *) insertAudioTrack: (unsigned int)  clipIndex

插入音频轨道

参数
trackIndex插入后轨道的索引,如果传入小于0或者大于当前轨道数量的index,会在当前轨道数量的最后插入
返回
返回插入的音频轨道对象,当添加第二个以上的音频轨道时,可能会由于没有多音频轨道授权导致返回nil
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
removeAudioTrack
- audioTrackCount
getAudioTrackByIndex

◆ insertVideoTrack:

- (NvsVideoTrack *) insertVideoTrack: (unsigned int)  clipIndex

插入视频轨道

参数
trackIndex插入后轨道的索引,如果传入小于0或者大于当前轨道数量的index,会在当前轨道数量的最后插入
返回
返回插入的视频轨道对象,当添加第二个以上的视频轨道时,可能会由于没有多视频轨道授权导致返回nil
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
removeVideoTrack
- videoTrackCount
getVideoTrackByIndex

◆ isRenderOrderByZValueEnabled

- (BOOL) isRenderOrderByZValueEnabled

是否开启使用Z值作为渲染顺序

返回
是否开启
自从
2.17.0

◆ moveVideoTrackIndex:dstTrackIndex:

- (BOOL) moveVideoTrackIndex: (unsigned int)  srcTrackIndex
dstTrackIndex: (unsigned int)  dstTrackIndex 

移动视频轨道。移动之后,所有视频轨道会从0开始重新设置index

参数
srcTrackIndex原视频轨道索引
dstTrackIndex目标视频轨道索引
返回
判断是否移动成功。返回YES成功,NO则失败;如果srcTrackIndex和dstTrackIndex小于0或者大于等于当前轨道数量,则返回NO
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题

◆ removeAnimatedSticker:

- (NvsTimelineAnimatedSticker *) removeAnimatedSticker: (NvsTimelineAnimatedSticker *)  animatedSticker

移除时间线上的动画贴纸

参数
animatedSticker要移除的动画贴纸对象
返回
返回下一个时间线动画贴纸对象
参见
- addAnimatedSticker:duration:animatedStickerPackageId:

◆ removeAudioTrack:

- (BOOL) removeAudioTrack: (unsigned int)  trackIndex

移除音频轨道

参数
trackIndex音频轨道索引
返回
判断是否移除成功。返回YES移除成功,NO则失败;如果trackIndex小于0或者大于等于当前轨道数量,则返回NO
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- appendAudioTrack
- audioTrackCount
- getAudioTrackByIndex:

◆ removeCaption:

- (NvsTimelineCaption *) removeCaption: (NvsTimelineCaption *)  caption

移除时间线上的字幕

参数
caption要移除的时间线字幕对象
返回
返回下一个时间线字幕对象
参见
- addCaption:inPoint:duration:captionStylePackageId:

◆ removeCompoundCaption:

- (NvsTimelineCompoundCaption *) removeCompoundCaption: (NvsTimelineCompoundCaption *)  caption

移除时间线上的复合字幕

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

◆ removeCurrentTheme

- (void) removeCurrentTheme

移除当前主题

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

◆ removeTimelineEndingLogo

- (void) removeTimelineEndingLogo

移除已添加的timeline结尾的logo特效

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

◆ removeTimelineGraphCompositor:

- (NvsTimelineGraphCompositor *) removeTimelineGraphCompositor: (NvsTimelineGraphCompositor *)  graphCompositor

移除时间线上的图式合成器

参数
graphCompositor要移除的图式合成器对象
返回
返回被删除的图式合成器的下一个图式合成器对象
自从
3.3.0

◆ removeTimelineVideoFx:

- (NvsTimelineVideoFx *) removeTimelineVideoFx: (NvsTimelineVideoFx *)  videoFx

移除时间线上的时间线视频特效

参数
videoFx要移除的时间线视频特效对象
返回
返回被删除的时间线视频特效的下一个时间线视频特效对象

◆ removeVideoTrack:

- (BOOL) removeVideoTrack: (unsigned int)  trackIndex

移除视频轨道

参数
trackIndex视频轨道索引
返回
判断是否移除成功。返回YES移除成功,NO则失败;如果trackIndex小于0或者大于等于当前轨道数量,则返回NO
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- appendVideoTrack
- videoTrackCount
- getVideoTrackByIndex:

◆ setCaptionBoundingRectInActualMode:

- (void) setCaptionBoundingRectInActualMode: (BOOL)  isActualBoundingRect

设置字幕的边框为文字的实际包络大小

参数
isActualBoundingRect是否显示实际包络大小
自从
2.5.0

◆ setPlaybackRateControl:

- (void) setPlaybackRateControl: (NSArray *)  arrayPlaybackRateControlRegion

◆ setThemeMusicVolumeGain:rightVolumeGain:

- (void) setThemeMusicVolumeGain: (float)  leftVolumeGain
rightVolumeGain: (float)  rightVolumeGain 

设置主题音乐音量

参数
leftVolumeGain左声道,取值范围[0,8),建议是[0,3],如果超过3,可能会破音
rightVolumeGain右声道,取值范围[0,8),建议是[0,3],如果超过3,可能会破音
参见
- getThemeMusicVolumeGain:rightVolumeGain:

◆ setThemeTitleCaptionText:

- (void) setThemeTitleCaptionText: (NSString *)  text

设置主题片头字幕文本

参数
text字幕文本
参见
- setThemeTrailerCaptionText:
- applyTheme:

◆ setThemeTrailerCaptionText:

- (void) setThemeTrailerCaptionText: (NSString *)  text

设置主题片尾字幕文本

参数
text字幕文本
参见
- setThemeTitleCaptionText:
- applyTheme:

◆ setTimelineEndingLogo:displayWidth:displayHeight:centerX:centerY:

- (bool) setTimelineEndingLogo: (NSString *)  logoFilePath
displayWidth: (unsigned int)  displayWidth
displayHeight: (unsigned int)  displayHeight
centerX: (int)  centerX
centerY: (int)  centerY 

设置timeline结尾的Logo特效,时长是1s钟

参数
logoFilePathlogo文件的路径,须为PNG、JPG、CAF文件
displayWidthlogo在timeline中显示的宽度,为0则使用图片文件的宽度
displayHeightlogo在timeline中显示的高度,为0则使用图片文件的高度
centerXlogo中心点在X方向的位置
centerYlogo中心点在Y方向的位置
警告
此接口会引发流媒体引擎状态跳转到引擎停止状态,具体情况请参见引擎变化专题
参见
- removeTimelineEndingLogo:

◆ setWatermarkOpacity:

- (bool) setWatermarkOpacity: (float)  opacity

设置水印不透明度

参数
opacity水印的不透明度, 取值范围 0~1
参见
addWatermark:
- deleteWatermark:

◆ videoTrackCount

- (unsigned int) videoTrackCount

获取视频轨道数量

返回
返回视频轨道的数量
参见
- appendVideoTrack
- removeVideoTrack:

属性说明

◆ audioFadeOutDuration

- (int64_t) audioFadeOutDuration
readwritenonatomicassign

音频淡出时长(单位微秒)

◆ audioRes

- (NvsAudioResolution) audioRes
readatomicassign

音频解析度(采样率、采样格式及通道数)

◆ duration

- (int64_t) duration
readatomicassign

时间线的时长(单位微秒)

◆ videoFps

- (NvsRational) videoFps
readatomicassign

视频帧率

◆ videoRes

- (NvsVideoResolution) videoRes
readatomicassign

视频解析度(图像宽高及横纵比)


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