前言
短视频模板是一种快速创建短视频的方法。它们通常由专业设计师或模板创建者制作。用户只需更换视频模板中的部分素材,即可生成与模板一样的创意视频。这种省时省力的“套模”视频创作方式,无需“烧脑”构思创意,深受用户欢迎。
应用场景
短视频模板广泛应用于短视频应用、视频剪辑工具、拍摄美化工具、旅游、电商、新闻等垂直领域。例如:
在视频剪辑工具和拍摄美化工具的垂直领域,短视频模板功能可以降低视频剪辑的门槛,激发用户创作,进而提高应用的用户活跃度;
在In 应用中,用户可以使用“模板集”,用视频记录旅途中的风水和风土人情;
在电商应用中,商家可以通过应用产品展示模板视频快速创建产品展示;
在新闻信息应用中,用户可以应用新闻模板,快速发布新闻信息。
华为HMS核心视频剪辑服务模板能力
HMS核心视频剪辑服务近期开放了模板功能,并针对不同场景预设了一些视频模板供开发者测试使用。模板的种类和数量将逐步丰富。
访问简单,省时省力
HMS Core视频编辑服务提供详细的开发接口、接口说明及接入步骤,代码简洁明了,开发省时省力。
云端管理,高效运营
HMS Core视频剪辑服务为开发者提供AGC后台排料的后台,运营商可以在web端完成模板栏目排列和标签管理、国家/地区设置、模板内容上下架、快速检索查询信息等
集成代码1.开发准备
详细准备步骤请参考华为开发者联盟官网
2.编辑项目集成
2.1 设置应用认证信息
可以通过或Token设置应用认证信息。
Token通过方法设置,应用启动时初始化一次即可,无需多次设置。
MediaApplication.getInstance().setAccessToken("your access token");
可以通过方法设置,应用启动时初始化设置一次即可,无需多次设置。
MediaApplication.getInstance().setApiKey("your ApiKey");
![图片[1]-HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频-唐朝资源网](https://images.43s.cn/wp-content/uploads//2022/06/1655210518951_1.jpg)
2.2 设置唯一标识ID,即ID。
ID是有效的管控证书,必须保证设置ID的唯一性。
MediaApplication.getInstance().setLicenseId("License ID");
2.2.1初始化运行环境
要创建编辑项目,首先需要创建一个对象并初始化它的运行环境。离开编辑项目时,应该释放实例。
(1)创建对象
HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());
(2)指定预览窗口的布局位置
预览窗口负责视频图像的渲染,由视频编辑原子能力SDK内部创建实现。在创建窗口之前,您需要在应用中指定预览窗口的布局位置。
// 指定预览窗口
LinearLayout mSdkPreviewContainer = view.findViewById(R.id.video_content_layout);
// 设置预览窗口承载的布局
editor.setDisplay(mSdkPreviewContainer);
(3)初始化运行环境,如果认证失败,会抛出。
对象创建后,此时并不占用实际系统资源,需要手动选择其环境初始化的时机。此时,视频编辑原子能力SDK内部会创建必要的线程和定时器。
try {
editor.initEnvironment();
} catch (LicenseException error) {
SmartLog.e(TAG, "initEnvironment failed: " + error.getErrorMsg());
finish();
return;
}
3.模板能力整合
// 获取模板栏目列表
final HVEColumnInfo[] column = new HVEColumnInfo[1];
HVETemplateManager.getInstance().getColumnInfos(new HVETemplateManager.HVETemplateColumnsCallback() {
@Override
public void onSuccess(List result) {
// 获取模板栏目列表成功
column[0] = result.get(0);
}
@Override
public void onFail(int error) {
// 获取模板栏目列表失败
}
});
// 获取模板详情
final String[] templateIds = new String[1];
// size为需要请求数据的数量 > 0,offset为需要请求数据的偏移量 ≥ 0,true代表强制获取网络数据
HVETemplateManager.getInstance().getTemplateInfos(column[0].getColumnId(), size, offset, true, new HVETemplateManager.HVETemplateInfosCallback() {
@Override
public void onSuccess(List result, boolean hasMore) {
// 获取模板详情成功
HVETemplateInfo templateInfo = result.get(0);
// 获取模板ID
templateIds[0] = templateInfo.getId();
}
@Override
public void onFail(int errorCode) {
// 获取模板详情失败
}
});
// 待获取模板详情成功后,获取模板ID
String templateId = templateIds[0];
![图片[2]-HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频-唐朝资源网](https://images.43s.cn/wp-content/uploads//2022/06/1655210518951_4.png)
// 获取模板工程
final List[] editableElementList = new ArrayList[1];;
HVETemplateManager.getInstance().getTemplateProject(templateId, new HVETemplateManager.HVETemplateProjectCallback() {
@Override
public void onSuccess(List editableElements) {
// 获取成功后跳转到选择资源界面,把选中的本地资源路径更新到editableElements
editableElementList[0] = editableElements;
}
@Override
public void onProgress(int progress) {
// 获取进度
}
@Override
public void onFail(int errorCode) {
// 获取失败
}
});
// 准备模板工程
HVETemplateManager.getInstance().prepareTemplateProject(templateId, new HVETemplateManager.HVETemplateProjectPrepareCallback() {
@Override
public void onSuccess() {
// 准备模板工程成功,可以生成HuaweiVideoEditor实例进行播放、预览、导出等操作
}
@Override
public void onProgress(int progress) {
// 准备进度
}
@Override
public void onFail(int errorCode) {
// 准备失败
}
});
// 在模板准备成功后,生成HuaweiVideoEditor实例
// 拥有editor之后就可以进行播放或者导出操作,详情见播放时间线和导出
HuaweiVideoEditor editor = HuaweiVideoEditor.create(templateId, editableElementList[0]);
try {
editor.initEnvironment();
} catch (LicenseException e) {
SmartLog.e(TAG, "editor initEnvironment ERROR.");
}
演示
暂无评论内容