短视频SDK支持基于AE模板剪同款的功能,即通过导入AE制作的模板,通过替换模板中的视频、图片、文字等元素,实时编辑与预览,最后导出生成新的同款视频。
版本支持
版本 | 是否支持 |
专业版 | 支持 说明短视频SDK 3.35.0及以上版本才支持基于AE模板剪同款功能。 |
标准版 | 不支持 |
基础版 | 不支持 |
相关类功能
类名 | 功能 |
模板。 | |
模板媒体类素材。 | |
模板文字类素材。 | |
模板编辑器。 | |
模板预览播放器。 | |
模板渲染导出器。 |
使用限制
仅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)
文档反馈