前言

短视频模板,是快捷创作短视频的一种形式,个别由业余设计师或模板创作人制作,用户只需替换视频模板中的局部素材,便可生成一支与模板一样的创意视频。这种省时省力、无需“烧脑”构思创意的“套模板”视频创作方法,深受用户青睐。

利用场景

短视频模板在短视频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 最新技术资讯~