文档

基于AE模板剪同款

更新时间:

短视频SDK支持基于AE模板剪同款的功能,即通过导入AE制作的模板,通过替换模板中的视频、图片、文字等元素,实时编辑与预览,最后导出生成新的同款视频。

版本支持

版本

是否支持

专业版

支持

说明短视频SDK 3.35.0及以上版本才支持基于AE模板剪同款功能。

标准版

不支持

基础版

不支持

相关类功能

类名

功能

AliyunAETemplate

模板。

AliyunAETemplateAssetMedia

模板媒体类素材。

AliyunAETemplateAssetText

模板文字类素材。

AliyunAETemplateEditor

模板编辑器。

AliyunAETemplatePlayer

模板预览播放器。

AliyunAETemplateRender

模板渲染导出器。

使用限制

  • 仅3.35.0及以上版本的短视频SDK专业版支持基于AE模板剪同款功能。

  • 已购买并申请开通了剪同款模块,购买方式,请参见获取短视频SDK License

  • 使用基于AE模板剪同款功能,需要按全量集成的方式引入剪同款引擎库,详细方法,请参见pod方式集成(推荐)

  • 基于AE模板剪同款不支持armv7架构的真机和模拟器,请在arm64架构的真机下运行,可以通过以下API进行功能入口的控制。

    BOOL support = [AliyunAETemplateManager canSupport];
    if (support) {
     // 打开功能入口
    }

制作AE模板

创作剪同款的AE模板,请参见高级模板制作流程

编辑模板

代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

#import <AliyunVideoSDKPro/AliyunVideoSDKPro.h>


// 通过模板路径创建编辑器
self.editor = [[AliyunAETemplateEditor alloc] initWithTemplatePath:self.templatePath];

// 获取可替换素材列表
NSArray *array = self.editor.currentTemplate.replaceableAssets;

// 替换素材
AliyunAETemplateAsset *item = [array objectAtIndex:0];
if ([item isKindOfClass:AliyunAETemplateAssetMedia.class]) {
 AliyunAETemplateAssetMedia *mediaAsset = (AliyunAETemplateAssetMedia *)item;
 mediaAsset.replacedPath = @"filePath";
 [self.editor commit];
}
else if ([item isKindOfClass:AliyunAETemplateAssetText.class]) {
 AliyunAETemplateAssetText *textAsset = (AliyunAETemplateAssetText *)item;
 textAsset.replacedText = titleTextField.text;
 [self.editor commit];
}

// 替换背景音乐
[self.editor replaceAudio:@"musicPath"];

实时预览

代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

// 监听播放回调
self.editor.player.delegate = self
 // 开始播放
 [self.editor.player start];


#pragma mark - AliyunAETemplatePlayerDelegate

- (void)playerDidLoaded {
}

- (void)playerDidEnd {
}

- (void)playProgress:(double)progress {
}

- (void)playError:(NSInteger)errorCode {
}

渲染导出

代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

// 监听渲染回调
self.editor.render.delegate = self
 // 开始渲染
 [self.editor.render start];


#pragma mark - AliyunAETemplateRenderDelegate

- (void)templateRenderStarted {
 NSLog(@"templage render started");
}

- (void)templateRenderFinished:(NSURL *)outputUrl {
 NSLog(@"templage render completed");
}

- (void)templateRenderCancelled {
 NSLog(@"templage render cancel");
}

- (void)templateRenderFailed:(NSError *)error {
 NSLog(@"templage render error:%@", error);
}

- (void)templateRenderProgress:(CGFloat)progress {
 NSLog(@"templage render progress:%f", progress);
}
  • 本页导读 (1)
文档反馈