前言
短视频模板,是快捷创作短视频的一种形式,个别由业余设计师或模板创作人制作,用户只需替换视频模板中的局部素材,便可生成一支与模板一样的创意视频。这种省时省力、无需“烧脑”构思创意的“套模板”视频创作方法,深受用户青睐。
利用场景
短视频模板在短视频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 最新技术资讯~