| 
    美摄SDK For iOS
    3.7.2
    
   | 
 
时间线,编辑场景的时间轴实体 更多...
#import <NvsTimeline.h>
  
属性 | |
| NvsVideoResolution | videoRes | 
| 视频解析度(图像宽高及横纵比)  更多... | |
| NvsAudioResolution | audioRes | 
| 音频解析度(采样率、采样格式及通道数)  更多... | |
| NvsRational | videoFps | 
| 视频帧率  更多... | |
| int64_t | duration | 
| 时间线的时长(单位微秒)  更多... | |
| int64_t | audioFadeOutDuration | 
| 音频淡出时长(单位微秒)  更多... | |
时间线,编辑场景的时间轴实体
时间线由轨道组成,可视作一系列音视频轨道的集合。在时间线上可添加或者移除多条视频轨道和音轨轨道,多条轨道之间是相互叠加合成的关系。 当编辑视频时,根据需要还会添加上时间线字幕,主题以及相应的动画贴纸,以制作出美观的视频。另外,添加素材资源包(主题包,动画贴纸包,字幕样式包,时间线特效包等), 都得先安装,安装成功后获取packageId才能使用,而内建时间线特效(builtin)只需获取特效名称即可使用。
| - (NvsTimelineAnimatedSticker *) addAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
在时间线上添加动画贴纸
| inPoint | 动画贴纸在时间线上的入点(单位微秒) | 
| duration | 动画贴纸的显示时长(单位微秒) | 
| animatedStickerPackageId | 动画贴纸包Id | 
| - (NvsTimelineVideoFx *) addBuiltinTimelineVideoFx: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| videoFxName: | (NSString *) | videoFxName | |
在时间线上添加内嵌的时间线视频特效
| inPoint | 时间线视频特效在时间线上的入点(单位微秒) | 
| duration | 时间线视频特效显示的时长(单位微秒) | 
| videoFxName | 内嵌的时间线视频特效名字 | 
| - (NvsTimelineCaption *) addCaption: | (NSString *) | captionText | |
| inPoint: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| captionStylePackageId: | (NSString *) | captionStylePackageId | |
在时间线上添加字幕
| captionText | 字幕的文字 | 
| inPoint | 字幕在时间线上的起点(单位微秒) | 
| duration | 字幕显示时长(单位微秒) | 
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者nil | 
| - (NvsTimelineCompoundCaption *) addCompoundCaption: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| compoundCaptionPackageId: | (NSString *) | compoundCaptionPackageId | |
在时间线上添加字幕
| captionText | 字幕的文字 | 
| inPoint | 字幕在时间线上的起点(单位微秒) | 
| duration | 字幕显示时长(单位微秒) | 
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者nil | 
| - (NvsTimelineAnimatedSticker *) addCustomAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
| customImagePath: | (NSString *) | customImagePath | |
在时间线上添加自定义动画贴纸
| inPoint | 自定义动画贴纸在时间线上的入点(单位微秒) | 
| duration | 自定义动画贴纸的显示时长(单位微秒) | 
| animatedStickerPackageId | 自定义动画贴纸包Id | 
| customImagePath | 自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像) | 
| - (NvsTimelineAnimatedSticker *) addCustomPanoramicAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
| customImagePath: | (NSString *) | customImagePath | |
在时间线上添加自定义全景图动画贴纸
| inPoint | 动画贴纸在时间线上的起点(单位微秒) | 
| duration | 动画贴纸的显示时长(单位微秒) | 
| animatedStickerPackageId | 动画贴纸资源包ID | 
| customImagePath | 自定义动画贴纸图像路径(可以是jpg、png图像,或者美摄sdk内部支持的动态caf格式图像) | 
| - (NvsTimelineVideoFx *) addCustomTimelineVideoFx: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| customVideoFxRender: | (id< NvsCustomVideoFxRenderer >) | customVideoFxRender | |
在时间线上添加自定义时间线视频特效
| inPoint | 时间线视频特效在时间线上的入点(单位微秒) | 
| duration | 时间线视频特效的时长(单位微秒) | 
| customVideoFxRender | 用户实现的自定义视频特效渲染器接口 | 
| - (NvsTimelineCaption *) addModularCaption: | (NSString *) | captionText | |
| inPoint: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
在时间线上添加模块字幕
| captionText | 字幕的文字 | 
| inPoint | 字幕在时间线上的起点(单位微秒) | 
| duration | 字幕显示时长(单位微秒) | 
| - (NvsTimelineVideoFx *) addPackagedTimelineVideoFx: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| videoFxPackageId: | (NSString *) | videoFxPackageId | |
在时间线上添加资源包形式的时间线视频特效
| inPoint | 时间线视频特效在时间线上的入点(单位微秒) | 
| duration | 时间线视频特效显示的时长(单位微秒) | 
| videoFxPackageId | 时间线视频特效资源包Id | 
| - (NvsTimelineAnimatedSticker *) addPanoramicAnimatedSticker: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| animatedStickerPackageId: | (NSString *) | animatedStickerPackageId | |
在时间线上添加全景图动画贴纸
| inPoint | 动画贴纸在时间线上的起点(单位微秒) | 
| duration | 动画贴纸的显示时长(单位微秒) | 
| animatedStickerPackageId | 动画贴纸资源包ID | 
| - (NvsTimelineCaption *) addPanoramicCaption: | (NSString *) | captionText | |
| inPoint: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| captionStylePackageId: | (NSString *) | captionStylePackageId | |
在时间线上添加全景图字幕
| captionText | 字幕的文字 | 
| inPoint | 字幕在时间线上的入点(单位微秒) | 
| duration | 字幕的显示时长(单位微秒) | 
| captionStylePackageId | 字幕样式包Id,不存在的话,可以传空字符串或者nil | 
| - (NvsTimelineGraphCompositor *) addTimelineGraphCompositor: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| graphDescStr: | (NSString *) | graphDescStr | |
在时间线上添加一个图式合成器
| inPoint | 图式合成器在时间线上的入点(单位微秒) | 
| duration | 图式合成器的时长(单位微秒) | 
| graphDescStr | 图式合成器的描述信息 | 
| - (NvsTimelineGraphCompositor *) addTimelineGraphCompositor: | (int64_t) | inPoint | |
| duration: | (int64_t) | duration | |
| graphDescStr: | (NSString *) | graphDescStr | |
| buddyTrackIndex: | (int) | buddyTrackIndex | |
在时间线上添加一个图式合成器
| inPoint | 图式合成器在时间线上的入点(单位微秒) | 
| duration | 图式合成器的时长(单位微秒) | 
| graphDescStr | 图式合成器的描述信息 | 
| buddyTrackIndex | 伴侣视频帧轨道序号 | 
| - (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方向的边距 | 
| - (NvsAudioTrack *) appendAudioTrack | 
| - (NvsVideoTrack *) appendVideoTrack | 
| - (BOOL) applyTheme: | (NSString *) | themeId | 
对当前时间线应用主题(主题是相对于整个时间线而言)
对于主题,可能包含有片头或片尾,或片头片尾都有,也有可能都没有。应用含有片头或片尾的主题时,片头和片尾都被视作一个clip,从而导致clip数量的增加。使用此接口时请注意判断片段的数量。
| themeId | 主题包裹的id(如果themeId为空字符串或者nil,将会移除当前的主题) | 
| - (bool) applyThemeTemplate: | (NSString *) | templateId | 
应用自适应时长模版.
| templateId | 模板uuid | 
| - (unsigned int) audioTrackCount | 
| - (BOOL) changeVideoBitDepth: | (NvsVideoResolutionBitDepth) | newBitDepth | 
改变时间线的视频位深度
| newBitDepth | 新的位深度 | 
| - (BOOL) changeVideoSize: | (int) | videoWidth | |
| videoHeight: | (int) | videoHeight | |
改变时间线的视频尺寸 
注意:如果当前时间线已经被连接到了一个SurfaceTexture上,那么请在改变时间线的视频尺寸之前 先断开当前时间线与SurfaceTexture的连接,改变视频尺寸后再重现连接那个SurfaceTexture! 
| videoWidth | 新的视频宽度(目前要求传入的图像宽度值是4的倍数) | 
| videoHeight | 新的视频高度(目前要求传入的图像高度值是2的倍数) | 
| - (unsigned int) creationFlags | 
获取创建timeline的标志
| - (void) deleteWatermark | 
删除已添加的水印
| - (void) enableRenderOrderByZValue: | (BOOL) | enable | 
开启使用Z值作为渲染顺序 重要提示:参与排序的有时间线字幕,复合字幕,模块字幕,动画贴纸和时间线滤镜 如果同一种类型中的Z值是相同的,和没有开启这个属性的排序方式是一致的 如果不同类型的Z值是相同的,排列顺序为:时间线滤镜->动画贴纸->时间线字幕(包含模块字幕)->复合字幕
| enable | 是否开启 | 
| - (NSArray *) getAnimatedStickersByTimelinePosition: | (int64_t) | timelinePos | 
根据时间线上的位置获得动画贴纸列表
| timelinePos | 时间线上的位置(单位微秒) | 
| - (NvsAudioTrack *) getAudioTrackByIndex: | (unsigned int) | trackIndex | 
通过索引获取音频轨道
| trackIndex | 音频轨道索引 | 
| - (NSArray *) getCaptionsByTimelinePosition: | (int64_t) | timelinePos | 
根据时间线上的位置获得字幕列表
| timelinePos | 时间线上的位置(单位微秒) | 
| - (NSArray<NvsTimelineCompoundCaption*> *) getCompoundCaptionsByTimelinePosition: | (int64_t) | timelinePos | 
根据时间线上的位置获得复合字幕列表
| timelinePos | 时间线上的复合位置(单位微秒) | 
| - (int) getCreationFlags | 
获取创建timeline的flag NvsCreateTimelineTypeFlag
| - (NSString *) getCurrentThemeId | 
| - (NvsTimelineAnimatedSticker *) getFirstAnimatedSticker | 
获取时间线上第一个动画贴纸
| - (NvsTimelineCaption *) getFirstCaption | 
| - (NvsTimelineCompoundCaption *) getFirstCompoundCaption | 
| - (NvsTimelineGraphCompositor *) getFirstTimelineGraphCompositor | 
获取时间线上第一个图式合成器
| - (NvsTimelineVideoFx *) getFirstTimelineVideoFx | 
获取时间线上第一个时间线视频特效
| - (NvsTimelineAnimatedSticker *) getLastAnimatedSticker | 
| - (NvsTimelineCaption *) getLastCaption | 
获取时间线上的最后一个字幕
| - (NvsTimelineCompoundCaption *) getLastCompoundCaption | 
| - (NvsTimelineGraphCompositor *) getLastTimelineGraphCompositor | 
获取时间线上最后一个图式合成器
| - (NvsTimelineVideoFx *) getLastTimelineVideoFx | 
获取时间线上最后一个时间线视频特效
| - (NvsTimelineAnimatedSticker *) getNextAnimatedSticker: | (NvsTimelineAnimatedSticker *) | animatedSticker | 
| - (NvsTimelineCaption *) getNextCaption: | (NvsTimelineCaption *) | caption | 
| - (NvsTimelineCompoundCaption *) getNextCompoundCaption: | (NvsTimelineCompoundCaption *) | caption | 
获取时间线上的当前复合字幕的前一个复合字幕
| caption | 时间线上当前复合字幕对象 | 
| - (NvsTimelineGraphCompositor *) getNextTimelineGraphCompositor: | (NvsTimelineGraphCompositor *) | graphCompositor | 
获取时间线上某个图式合成器的下一个图式合成器
| graphCompositor | 图式合成器对象 | 
| - (NvsTimelineVideoFx *) getNextTimelineVideoFx: | (NvsTimelineVideoFx *) | videoFx | 
获取时间线上某个时间线视频特效的下一个时间线视频特效
| videoFx | 时间线视频特效对象 | 
| - (NSArray *) getPlaybackRateControl | 
| - (NvsTimelineAnimatedSticker *) getPrevAnimatedSticker: | (NvsTimelineAnimatedSticker *) | animatedSticker | 
| - (NvsTimelineCaption *) getPrevCaption: | (NvsTimelineCaption *) | caption | 
| - (NvsTimelineCompoundCaption *) getPrevCompoundCaption: | (NvsTimelineCompoundCaption *) | caption | 
获取时间线上的当前复合字幕的前一个复合字幕
| caption | 时间线上当前复合字幕对象 | 
| - (NvsTimelineGraphCompositor *) getPrevTimelineGraphCompositor: | (NvsTimelineGraphCompositor *) | graphCompositor | 
获取时间线上某个图式合成器的前一个图式合成器
| graphCompositor | 图式合成器 | 
| - (NvsTimelineVideoFx *) getPrevTimelineVideoFx: | (NvsTimelineVideoFx *) | videoFx | 
获取时间线上某个时间线视频特效的前一个时间线视频特效
| videoFx | 时间线视频特效对象 | 
| - (void) getThemeMusicVolumeGain: | (float *) | leftVolumeGain | |
| rightVolumeGain: | (float *) | rightVolumeGain | |
| - (NvsTimelineGraphCompositor *) getTimelineGraphCompositorByTimelinePosition: | (int64_t) | timelinePos | 
根据时间线上的位置获得图式合成器
| timelinePos | 时间线上的位置(单位微秒) | 
| - (NSArray *) getTimelineVideoFxByTimelinePosition: | (int64_t) | timelinePos | 
根据时间线上的位置获得时间线视频特效列表
| timelinePos | 时间线上的位置(单位微秒) | 
| - (NvsVideoTrack *) getVideoTrackByIndex: | (unsigned int) | trackIndex | 
通过索引获取视频轨道
| trackIndex | 视频轨道索引 | 
| - (NvsAudioTrack *) insertAudioTrack: | (unsigned int) | clipIndex | 
插入音频轨道
| trackIndex | 插入后轨道的索引,如果传入小于0或者大于当前轨道数量的index,会在当前轨道数量的最后插入 | 
| - (NvsVideoTrack *) insertVideoTrack: | (unsigned int) | clipIndex | 
插入视频轨道
| trackIndex | 插入后轨道的索引,如果传入小于0或者大于当前轨道数量的index,会在当前轨道数量的最后插入 | 
| - (BOOL) isRenderOrderByZValueEnabled | 
是否开启使用Z值作为渲染顺序
| - (BOOL) moveVideoTrackIndex: | (unsigned int) | srcTrackIndex | |
| dstTrackIndex: | (unsigned int) | dstTrackIndex | |
移动视频轨道。移动之后,所有视频轨道会从0开始重新设置index
| srcTrackIndex | 原视频轨道索引 | 
| dstTrackIndex | 目标视频轨道索引 | 
| - (NvsTimelineAnimatedSticker *) removeAnimatedSticker: | (NvsTimelineAnimatedSticker *) | animatedSticker | 
移除时间线上的动画贴纸
| animatedSticker | 要移除的动画贴纸对象 | 
| - (BOOL) removeAudioTrack: | (unsigned int) | trackIndex | 
移除音频轨道
| trackIndex | 音频轨道索引 | 
| - (NvsTimelineCaption *) removeCaption: | (NvsTimelineCaption *) | caption | 
移除时间线上的字幕
| caption | 要移除的时间线字幕对象 | 
| - (NvsTimelineCompoundCaption *) removeCompoundCaption: | (NvsTimelineCompoundCaption *) | caption | 
移除时间线上的复合字幕
| caption | 要移除的时间线复合字幕对象 | 
| - (void) removeCurrentTheme | 
| - (void) removeTimelineEndingLogo | 
移除已添加的timeline结尾的logo特效
| - (NvsTimelineGraphCompositor *) removeTimelineGraphCompositor: | (NvsTimelineGraphCompositor *) | graphCompositor | 
移除时间线上的图式合成器
| graphCompositor | 要移除的图式合成器对象 | 
| - (NvsTimelineVideoFx *) removeTimelineVideoFx: | (NvsTimelineVideoFx *) | videoFx | 
移除时间线上的时间线视频特效
| videoFx | 要移除的时间线视频特效对象 | 
| - (BOOL) removeVideoTrack: | (unsigned int) | trackIndex | 
移除视频轨道
| trackIndex | 视频轨道索引 | 
| - (void) setCaptionBoundingRectInActualMode: | (BOOL) | isActualBoundingRect | 
设置字幕的边框为文字的实际包络大小
| isActualBoundingRect | 是否显示实际包络大小 | 
| - (void) setPlaybackRateControl: | (NSArray *) | arrayPlaybackRateControlRegion | 
| - (void) setThemeMusicVolumeGain: | (float) | leftVolumeGain | |
| rightVolumeGain: | (float) | rightVolumeGain | |
设置主题音乐音量
| leftVolumeGain | 左声道,取值范围[0,8),建议是[0,3],如果超过3,可能会破音 | 
| rightVolumeGain | 右声道,取值范围[0,8),建议是[0,3],如果超过3,可能会破音 | 
| - (void) setThemeTitleCaptionText: | (NSString *) | text | 
| - (void) setThemeTrailerCaptionText: | (NSString *) | text | 
| - (bool) setTimelineEndingLogo: | (NSString *) | logoFilePath | |
| displayWidth: | (unsigned int) | displayWidth | |
| displayHeight: | (unsigned int) | displayHeight | |
| centerX: | (int) | centerX | |
| centerY: | (int) | centerY | |
设置timeline结尾的Logo特效,时长是1s钟
| logoFilePath | logo文件的路径,须为PNG、JPG、CAF文件 | 
| displayWidth | logo在timeline中显示的宽度,为0则使用图片文件的宽度 | 
| displayHeight | logo在timeline中显示的高度,为0则使用图片文件的高度 | 
| centerX | logo中心点在X方向的位置 | 
| centerY | logo中心点在Y方向的位置 | 
| - (bool) setWatermarkOpacity: | (float) | opacity | 
| - (unsigned int) videoTrackCount | 
      
  | 
  readwritenonatomicassign | 
音频淡出时长(单位微秒)
      
  | 
  readatomicassign | 
音频解析度(采样率、采样格式及通道数)
      
  | 
  readatomicassign | 
时间线的时长(单位微秒)
      
  | 
  readatomicassign | 
视频帧率
      
  | 
  readatomicassign | 
视频解析度(图像宽高及横纵比)
 1.8.18