当前位置:网站首页>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 最新技术资讯~
边栏推荐
- 【云驻共创】华为云HCIA-IoT V2.5培训系列内容之物联网概览
- The computer broke down. I changed the computer. There was a problem installing the node environment. The URL is not defined
- 运行时应用自我保护(RASP):应用安全的自我修养
- 请问连接oracle时,这个version 1.54 是什么的version?
- EasyGBS如何解决对讲功能使用异常?
- MySQL在一个字段中匹配多个值
- 想学习eTS开发?教你开发一款IQ-EQ测试应用
- RF analyzer demo setup
- Introduction to redis - Chapter 3 - data structures and objects - Dictionary
- Signature analysis of app x-zse-96 in a Q & a community
猜你喜欢

Mysql, how to calculate the maximum value using stored procedures

成熟的知识管理,应具备哪些条件?

简单易懂的软路由刷机使用教程

Go 语言使用 MySQL 的常见故障分析和应对方法

得物多活架构设计之路由服务设计

开发增效利器—2022年VsCode插件分享

Proof and application of Chebyshev inequality

电脑坏了,换了台电脑,装node环境的时候出了问题,报错URL not defined

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

并购增资或将有望启动东软越通新动能?
随机推荐
@黑马粉丝,这份「高温补贴」你还没领?
Groovy之范围
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!
杜邦分析法解读:安阳钢铁股份有限公司企业投资价值何在?
wc 统计已过时,cloc 每一行代码都有效
全国进入主汛期,交通运输部:不具备安全运行条件的线路坚决停运!
Introduction and use of vector
请问连接oracle时,这个version 1.54 是什么的version?
互联网奇迹-小米究竟是怎么盈利
Deep analysis and Simulation of list
Analysis of LinkedList source code
Video data annotation tools and platforms (data annotation company)
Is it difficult to register stocks and open accounts online? Is it safe to open an account online now?
理财产品的赎回时间有规定吗?
成熟的知识管理,应具备哪些条件?
【云驻共创】华为云HCIA-IoT V2.5培训系列内容之物联网概览
How to use the interval repetition memory system in flowus, notation and other note taking software?
16路HD-SDI光端机多路HD-SDI高清视频光端机16路3G-SDI高清音视频光端机
视频数据标注工具与平台(数据标注公司)
蓝桥杯单片机(一)——关闭外设及熄灭LED