当前位置:网站首页>HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频
HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频
2022-06-23 11:43:00 【HMS Core】
前言
短视频模板,是快捷创作短视频的一种方式,一般由专业设计师或模板创作人制作,用户只需替换视频模板中的部分素材,便可生成一支与模板一样的创意视频。这种省时省力、无需“烧脑”构思创意的“套模板”视频创作方法,深受用户喜爱。
应用场景
短视频模板在短视频APP、视频剪辑工具、拍摄美化工具、旅游出行、电商、新闻等垂域应用广泛。例如:
在视频剪辑工具、拍摄美化工具垂域,短视频模板功能可以降低视频剪辑门槛、激发用户创作,进而提升应用的用户活跃度;
在旅游出行应用中,用户可以通过“套模板”的方式用视频记录旅途中的风土人情;
在电商应用中,商家可通过套用商品展示模板的方式,快速制作商品展示视频;
在新闻资讯应用中,用户可套用新闻模板,快速发布新闻讯息。
华为HMS Core视频编辑服务模板能力
HMS Core视频编辑服务近期开放了模板功能,并预置了一些不同场景的视频模板供开发者测试使用,后续还将陆续丰富模板品类和数量。
接入简单、省时省力
HMS Core视频编辑服务提供了涵盖模板栏目列表、模板详情、模板工程、导入导出等详细的开发接口、接口说明和接入步骤,代码简单、清晰,开发省时省力。
云端管理、高效运营
HMS Core视频编辑服务在AGC后台为开发者提供了编排素材的后台,运营人员可以在web端完成模板栏目编排、标签管理、国家/地区设置、上下架模板内容、快速检索查询信息等。

集成代码
1. 开发准备
详细准备步骤可参考华为开发者联盟官网
2. 编辑工程集成
2.1 设置应用的鉴权信息
可以通过api_key或者Access Token来设置应用鉴权信息。
通过setAccessToken方法设置Access Token,在应用启动时初始化设置一次即可,无需多次设置。
MediaApplication.getInstance().setAccessToken("your access token");通过setApiKey方法设置api_key,在应用启动时初始化设置一次即可,无需多次设置。
MediaApplication.getInstance().setApiKey("your ApiKey");2.2设置唯一标识ID,即License ID。
License ID是进行管控的有效凭证,您要保证设置License ID的唯一性。
MediaApplication.getInstance().setLicenseId("License ID");2.2.1初始化Editor运行环境
创建编辑工程,需要首先创建Editor对象并初始化其运行环境。当离开编辑工程时,应释放Editor实例。
(1) 创建Editor对象
HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());(2) 指定预览窗口的布局位置
预览窗口负责视频图像画面的渲染,由视频编辑原子能力SDK内部创建SurfaceView来实现。在创建窗口之前,需要在您的App中指定预览窗口的布局位置。
<LinearLayout android:id="@+id/video_content_layout" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/video_edit_main_bg_color" android:gravity="center" android:orientation="vertical" />// 指定预览窗口 LinearLayout mSdkPreviewContainer = view.findViewById(R.id.video_content_layout);// 设置预览窗口承载的布局 editor.setDisplay(mSdkPreviewContainer);(3) 初始化运行环境,如果License鉴权失败,会抛出LicenseException。
当Editor对象创建之后,此时还没有占用实际的系统资源,需要手动选择其环境初始化的时机,此时视频编辑原子能力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<HVEColumnInfo> 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<HVETemplateInfo> result, boolean hasMore) { // 获取模板详情成功 HVETemplateInfo templateInfo = result.get(0); // 获取模板ID templateIds[0] = templateInfo.getId(); } @Override public void onFail(int errorCode) { // 获取模板详情失败 }});// 待获取模板详情成功后,获取模板IDString templateId = templateIds[0];// 获取模板工程final List<HVETemplateElement>[] editableElementList = new ArrayList[1];;HVETemplateManager.getInstance().getTemplateProject(templateId, new HVETemplateManager.HVETemplateProjectCallback() { @Override public void onSuccess(List<HVETemplateElement> 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.");} Demo演示

了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
边栏推荐
- Vone news | wanglian technology empowers the public to enjoy the self-organization management of the chain network, creating an enterprise level alliance Dao
- Does the inductance have polarity?
- Numbers that only appear once < difficulty coefficient > & Yang Hui triangle < difficulty coefficient >
- 某问答社区App x-zse-96签名分析
- 语音数据标注工具与平台
- CIFAR公开第二阶段泛加拿大AI战略
- 请问,maxcompute执行sql查询有时特别慢是什么原因
- 哪个券商公司开户是最靠谱安全的
- 单向链表实现--计数
- Where to find capacitance parameters!?
猜你喜欢

Leetcode 1209. Delete all adjacent duplicates II in the string

Mysql, how to calculate the maximum value using stored procedures

4路电话+1路千兆以太网4路PCM电话光端机

Leetcode 1209. 删除字符串中的所有相邻重复项 II(牛逼,终于过了)

蓝桥杯单片机(一)——关闭外设及熄灭LED

汉源高科USB3.0光端机USB工业触摸屏光端机USB3.0光纤延长器USB3.0光纤传输器

Introduction to redis - Chapter 1 - data structures and objects - simple dynamic string (SDS)

DevEco Device Tool 助力OpenHarmony設備開發

2光2电级联型光纤收发器千兆2光2电光纤收发器迷你嵌入式工业矿用本安型光纤收发器

How Huawei cloud implements a global low latency network architecture for real-time audio and video
随机推荐
The country has entered the main flood season. The Ministry of transport: the lines that do not meet the conditions for safe operation will be resolutely shut down!
手机证券开户交易?现在网上开户安全么?
视频数据标注工具与平台(数据标注公司)
成熟的知识管理,应具备哪些条件?
六维图剖析:中国建筑集团有限公司企业成长性分析
Redis 入门-第一篇-数据结构与对象-简单动态字符串(SDS)
Redis 入门-第四篇-数据结构与对象-跳跃表
mysql,如何在使用存储过程计算最大值
Tamidog | analysis of investor types and enterprise investment types
Necessary software for automation or electrical specialty
ESP32-C3入门教程 问题篇⑦—— fatal error: esp_bt.h: No such file or directory 找不到esp_bt.h
Where to find capacitance parameters!?
自动化或电气专业必备软件
十大劵商如何开户?在线开户安全么?
RF analyzer demo setup
过采样系列二:傅里叶变换与信噪比
Gradienttape of tensorflow2
一张图解码 OpenCloudOS 社区开放日
如何在 FlowUs、Notion 等笔记软件中使用间隔重复记忆系统?
2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案