本文主要介绍短视频编辑 TAVMagicUIKit SDK 的 iOS 端 API 接口文档,以便于查阅和使用。
TAVEditorPreviewController
预览编辑页面 Controller
属性 | 类型 | 说明 |
TAVEditor *editor | TAVMagic 编辑 SDK。 | |
TAVEditorPreviewMenuView *menuView | 界面右侧一竖排按钮父视图。 | |
TAVPreviewBgmView *bgmView | 背景音乐展示视图,默认隐藏。 | |
UIButton *backButton | UIButton | 左上角返回按钮。 |
UIButton *nextButton | UIButton | next 按钮。 |
void (^nextClickCallback)(void) | Block | next 按钮点击事件。 |
void (^shouldHideMenuView)(void) | Block | menuView 隐藏回调。 |
void (^shouldShowMenuView)(void) | Block | menuView 显示回调。 |
NSTimeInterval minimumEditableDuration | NSTimeInterval | 编辑最小时长,默认6s。 |
NSTimeInterval maximumEditableDuration | NSTimeInterval | 编辑最大时长,默认60 * 60s。 |
id<ITAVMaterialProvider> materialProvider | 资源提供者,KIT 内点击增加视频/图片/BGM 时会调用该协议内的方法,可通过此协议自定义资源选择界面。 | |
id<ITAVEditInterceptor> editInterceptor | 编辑拦截器,回调某些操作是否可继续的事件拦截,例如:当前轨道位置是否可分割、限制某个类型轨道的最大数量等。 |
相关方法
方法 | 说明 |
使用视频/图片数组初始化编辑控制器。 | |
使用草稿初始化编辑控制器。 | |
使用 SDK 初始化编辑控制器。 | |
跳转编辑页。 | |
跳转编辑页并选中第一条 BGM 轨道。 | |
调起 BGM 选择面板,选择 BGM。 | |
调起文字贴纸面板,添加文字贴纸。 | |
调起音量设置面板,设置音量。 | |
跳转录音面板,添加录音。 | |
业务记录的录音 ID,用于区分 BGM 与录音。 |
initWithAssetPath:resources:
描述
初始化接口。用于通过一组初始资源创建编辑器对象。
接口
-(instancetype)initWithAssetPath:(NSString *)assetPath resources:(NSArray <TAVAlbumResource *>*)resources;参数
参数名 | 类型 | 说明 |
assetPath | NSString * | lightCore.bundle 模型资源的路径,传 nil 默认从 mainBundle 获取。 |
resources | NSArray <TAVAlbumResource *>* | 输入的初始资源数组。 |
返回值
类型:
instancetype说明:返回初始化后的对象实例。
initWithAssetPath:draft:
描述
初始化接口。用于通过一个草稿对象创建编辑器对象。
接口
-(instancetype)initWithAssetPath:(NSString *)assetPath draft:(TAVDraft *)draft;参数
参数名 | 类型 | 说明 |
assetPath | NSString * | lightCore.bundle 模型资源的路径,传 nil 默认从 mainBundle 获取。 |
draft | TAVDraft * | 用于加载的草稿对象。 |
返回值
类型:
instancetype说明:返回初始化后的对象实例。
initWithTavEditor:
描述
初始化接口。使用已存在的
TAVEditor 对象创建新的控制器实例。接口
-(instancetype)initWithTavEditor:(TAVEditor *)editor;参数
参数名 | 类型 | 说明 |
editor | TAVEditor * | SDK 编辑器对象。 |
返回值
类型:
instancetype说明:返回初始化后的对象实例。
pushEditController
描述
执行跳转操作,进入编辑页面。
接口
-(void)pushEditController;参数
无
返回值
类型:
void说明:无返回值。
pushEditAndSelectBgmTrack
描述
跳转到编辑页面,并自动选中第一条背景音乐(BGM)轨道。
接口
-(void)pushEditAndSelectBgmTrack;参数
无
返回值
类型:
void说明:无返回值。
showBgmSelectionPanel
描述
调起背景音乐(BGM)选择面板,供用户选择 BGM。
接口
-(void)showBgmSelectionPanel;参数
无
返回值
类型:
void说明:无返回值。
showTextInputPanel
描述
调起文字贴纸输入面板,用于添加或编辑文字贴纸。
接口
-(void)showTextInputPanel;参数
无
返回值
类型:
void说明:无返回值。
showVolumePanel
描述
调起音量设置面板,用于设置音量大小。
接口
-(void)showVolumePanel;参数
无
返回值
类型:
void说明:无返回值。
gotoVoiceoverPanel
描述
跳转到录音面板,允许用户添加配音(Voiceover)。
接口
-(void)gotoVoiceoverPanel;参数
无
返回值
类型:
void说明:无返回值。
voiceoverIds
描述
获取业务记录的录音 ID 列表,用于在业务逻辑中区分背景音乐(BGM)和录音资源。
接口
-(NSArray *)voiceoverIds;参数
无
返回值
类型:
NSArray *说明:返回业务记录的录音 ID 数组。
TAVEditorPreviewMenuView
预览编辑页面右侧竖排按钮父视图
属性 | 类型 | 说明 |
UIButton *adjustBtn | UIButton | 跳转主轨剪辑页面按钮。 |
UIButton *textBtn | UIButton | 添加文字按钮。 |
UIButton *musicBtn | UIButton | 添加音乐按钮。 |
UIButton *stickerBtn | UIButton | 添加贴纸按钮。 |
UIButton *filterBtn | UIButton | 添加滤镜按钮。 |
UIButton *effectBtn | UIButton | 添加特效按钮。 |
TAVPreviewBgmView
背景音乐展示视图,默认隐藏
属性 | 类型 | 说明 |
UIImageView *iconView | UIImageView | 音乐图标 icon。 |
UILabel *textView | UILabel | 音乐文字 label。 |
UIButton *deleteBtn | UIButton | 删除音乐按钮。 |
相关方法
方法 | 说明 |
设置是否有背景音乐。 |
setContainBgm:
描述
根据是否存在背景音乐(BGM)来设置并更新 UI 组件(如删除按钮的可见性和音效图标)。
接口
-(void)setContainBgm:(BOOL)hasBgm;参数
参数名 | 类型 | 说明 |
hasBgm | BOOL | 指示当前是否有背景音乐。若为 YES,显示删除按钮并设置默认音效图标;若为 NO,隐藏删除按钮并设置加载中音效图标。 |
返回值
类型:
void说明:无返回值。
ITAVMaterialProvider
Block 类型定义
描述
定义了用于处理素材选择结果的 Block 类型。
类型名称 | 类型定义 | 说明 |
handleBgmSelectResultFunc | typedef void(^handleBgmSelectResultFunc)(TAVBgmResource *bgmResource); | 用于处理背景音乐(BGM)选择结果的 Block,回调返回选中的 BGM 资源对象。 |
handleAlbumSelectResultFunc | typedef void(^handleAlbumSelectResultFunc)(NSArray<TAVAlbumResource *> *resourceList); | 用于处理相册文件选择结果的 Block,回调返回选中的媒体资源对象列表。 |
getBgmWithHandler:
描述
获取背景音乐(BGM)素材的接口。宿主应用应在此方法中调起 BGM 选择面板,并在用户选择完成后,通过
handler 回调选中的资源。接口
-(void)getBgmWithHandler:(handleBgmSelectResultFunc)handler;参数
参数名 | 类型 | 说明 |
handler | handleBgmSelectResultFunc | 回调 Block,用于将选中的 TAVBgmResource 对象返回给 SDK。 |
返回值
类型:
void说明:无返回值。
getAlbumFilesForType:withHandler:
描述
获取相册文件的接口。宿主应用应在此方法中调起相册选择器,并根据
option 中指定的类型,在用户选择完成后,通过 handler 回调选中的资源列表。接口
-(void)getAlbumFilesForType:(TAVAlbumOptions *)option withHandler:(handleAlbumSelectResultFunc)handler;参数
参数名 | 类型 | 说明 |
option | TAVAlbumOptions * | 相册选项,指定要选择的文件类型(如视频、图片)。 |
handler | handleAlbumSelectResultFunc | 回调 Block,用于将选中的 TAVAlbumResource 对象列表返回给 SDK。 |
返回值
类型:
void说明:无返回值。
ITAVEditInterceptor
方法 | 说明 |
是否可添加新轨道。 | |
是否可添加新轨道。 | |
是否可分割轨道。 |
canAddNewTrack:count:
描述
检查是否可以根据轨道类型和当前已添加的轨道数量来添加新的轨道。
接口
-(BOOL)canAddNewTrack:(TAVTrackType)type count:(NSInteger)currentCount;参数
参数名 | 类型 | 说明 |
type | TAVTrackType | 待添加的轨道类型。 |
currentCount | NSInteger | 当前已经添加的同类型轨道数量。 |
返回值
类型:
BOOL说明:返回 YES 表示可以添加新轨道,NO 表示达到数量限制或不被允许。
canAddNewTrack:currentTime:duration:
描述
检查是否可以根据轨道类型、当前时间点和总时长来添加新的轨道。
接口
-(BOOL)canAddNewTrack:(TAVTrackType)type currentTime:(CMTime)currentTime duration:(CMTime)totalDuration;参数
参数名 | 类型 | 说明 |
type | TAVTrackType | 待添加的轨道类型。 |
currentTime | CMTime | 当前播放的时间点。 |
totalDuration | CMTime | 当前编辑项目的总时长。 |
返回值
类型:
BOOL说明:返回 YES 表示可以添加新轨道,NO 表示不被允许(可能基于时间或时长限制)。
canSplitTrack:currentTime:timeRange:
描述
检查是否可以在指定的当前时间点对某一轨道进行分割操作。
接口
-(BOOL)canSplitTrack:(TAVTrackType)type currentTime:(CMTime)currentTime timeRange:(CMTimeRange)timeRange;参数
参数名 | 类型 | 说明 |
type | TAVTrackType | 待分割的轨道类型。 |
currentTime | CMTime | 当前播放的时间点(分割点)。 |
timeRange | CMTimeRange | 当前轨道的有效时间范围。 |
返回值
类型:
BOOL说明:返回 YES 表示可以在该时间点进行分割,NO 表示不允许分割(例如在轨道的边缘或少于最短可分割时长)。