当前位置: 首页 > 后端技术 > Java

学会这些步骤,轻松集成视频编辑原子能力SDK

时间:2023-04-01 22:28:39 Java

华为视频编辑服务6.2.0上线后,给大家带来了两大变化:丰富多样的AI能力和灵活的集成方式。为了让开发者更快上手,今天小编带来了视频剪辑原子能力SDK的具体集成方法。快来试试吧!1开发准备详细的准备步骤请参考华为开发者联盟官网:https://developer.huawei.com/...2代码开发1.1编辑工程1.1.1设置应用认证信息您可以通过以下方式设置应用api_key或访问令牌身份验证信息。使用setAccessToken方法设置访问令牌。应用启动时初始化一次即可,无需多次设置。MediaApplication.getInstance().setAccessToken("你的访问令牌");使用setApiKey方法设置api_key,同样不需要设置多次。MediaApplication.getInstance().setApiKey("你的ApiKey");1.1.2设置唯一ID,即LicenseID。LicenseID是进行管控的有效凭证,开发者必须保证LicenseID的唯一性。MediaApplication.getInstance().setLicenseId("许可证ID");1.1.3初始化Editor运行环境要创建一个编辑工程,首先要创建一个Editor对象并初始化运行环境。离开编辑项目时,应该释放Editor实例。(1)创建Editor对象HuaweiVideoEditoreditor=HuaweiVideoEditor.create(getApplicationContext());(2)指定预览窗口的布局位置。预览窗口负责视频画面的渲染,由VideoEditingAtomicAbilitySDK内部创建的SurfaceView实现。在创建窗口之前,开发者需要指定预览窗口在应用程序中的布局位置。//指定预览窗口LinearLayoutmSdkPreviewContainer=view.findViewById(R.id.video_content_layout);//设置预览窗口承载的布局editor.setDisplay(mSdkPreviewContainer);(3)初始化运行环境,如果license认证失败,将抛出LicenseException。创建一个Editor对象不会占用实际的系统资源。开发者需要手动选择环境初始化的时机。此时视频编辑原子能力SDK会创建必要的线程和定时器。尝试{editor.initEnvironment();}catch(LicenseExceptionerror){SmartLog.e(TAG,"initEnvironmentfailed:"+error.getErrorMsg());结束();返回;}1.1.4添加视频和图片创建视频泳道,通过文件路径在泳道上添加图片或视频素材。//获取时间轴对象HVETimeLinetimeline=editor.getTimeLine();//创建一个视频通道HVEVideoLanevideoLane=timeline.appendVideoLane();//在视频通道的最后添加一个视频资源HVEVideoAssetvideoAsset=videoeLane.appendVideoAsset("test.mp4");//在视频通道的最后,添加一个图像资源HVEImageAssetimageAsset=vidoeLane.appendImageAsset("test.jpg");1.1.5添加音乐创建一个音乐通道,通过文件路径将音乐素材添加到通道中。//创建一个音乐通道HVEAudioLaneaudioLane=timeline.appendAudioLane();//在音频通道的最后创建一个音乐资源HVEAudioAssetaudioAsset=audioLane.appendAudioAsset("test.mp3");1.1.6添加贴纸和文字创建一个贴纸文字泳道,通过文件路径在泳道上添加贴纸和文字。文本需要指定文本内容。//创建贴纸文本车道HVEStickerLanestickerLane=timeline.appendStickerLane();//在车道末端添加贴纸HVEStickerAssetstickerAsset=stickerLane.appendStickerAsset("test.png");//添加文本HVEWordAssetwordAsset=stickerLane.appendWord("输入文本",0,3000);1.1.7添加特效特效有两种:外置特效和内嵌特效。外部影响。新增特效泳道,跨多个资源任意调整时长。//创建一个特效通道HVEEffectLaneeffectLane=timeline.appendEffectLane();//创建一个颜色调整效果,添加到0位置,时长3000ms),0,3000);内置特效。添加到一个资源中,只能作用于单个资源,不能单独调整时间长短。//创建颜色调整内置特效HVEEffecteffect=videoAsset.appendEffectUniqueOfType(newHVEEffect.Options(HVEEffect.EFFECT_COLORADJUST,"",""),ADJUST);1.1.8播放时间线播放时间线需要指定起点和终点,之后时间线会以固定的帧率倒退,预览图像和声音会一直同步播放。通过注册的播放回调,可以接收播放进度、暂停、播放完成、播放失败事件。//注册播放进度回调editor.setPlayCallback(callback);//播放完整时间线editor.playTimeLine(timeline.getStartTime(),timeline.getEndTime());1.1.9导出编辑后,通过导出接口导出时间线从资源上生成新的视频。然后设置导出回调,可以监听导出进度、完成、失败事件,指定导出视频的帧率、分辨率、生成路径。//导出视频路径StringoutputPath=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+File.separator+Constant.LOCAL_VIDEO_SAVE_PATH+File.separator+VideoExportActivity.getTime()+".mp4";//导出分辨率HVEVideoPropertyvideoProperVEProperty=newHty(1920,1080);//导出视频HVEExportManager.exportVideo(targetEditor,callback,videoProperty,outputPath);1.2项目草稿HVEProjectManager可以查询本地草稿列表,并可以进行草稿的复制、删除、重命名等操作。1.2.1保存草稿//将编辑器保存到本地editor.saveProject();1.2.2恢复草稿//使用草稿ID创建Editor实例HuaweiVideoEditoreditor=HuaweiVideoEditor.create(getApplicationContext(),projectId);1.3素材管理AGC整理好素材栏后,通过素材管理模块提供的接口查询下载指定素材。具体步骤请参考:https://developer.huawei.com/...1.4AI算法集成视频剪辑原子能力SDK提供独家滤镜、人物追踪、人像复活、AI着色等AI算法,开发者可以自由发挥选择访问集成。各种AI能力的集成步骤请参考:https://developer.huawei.com/...1.4.1专属滤镜支持自定义滤镜,对输入的视频和图片应用自定义滤镜效果,支持多样化场景图片美化需求。独占过滤器display.gif//创建独占过滤算法引擎HVEExclusiveFilterfilterEngine=newHVEExclusiveFilter();//初始化独占过滤算法引擎mFilterEngine.initExclusiveFilterEngine(newHVEAIInitialCallback(){@OverridepublicvoidonProgress(intprogress){//初始化进度callback}@OverridepublicvoidonSuccess(){//初始化成功}@OverridepublicvoidonError(interrorCode,StringerrorMessage){//初始化失败}});//创建单个图片滤镜并指定一个Bitmap和滤镜的名称//返回滤镜ID,通过它可以在数据库中查询所有与滤镜相关的信息StringeffectId=mFilterEngine.createExclusiveEffect(bitmap,"customfilter01");//filter加入特效通道,起始位置0,时长3000mseffectLane.appendEffect(newHVEEffect.Options(HVEEffect.CUSTOM_FILTER+mSelectName,effectId,""),0,3000);多人合影,检测人物并根据参考色卡样式,实现一键染发,拉动可调节染发程度。一键染发.gif//一键染发AI算法初始化asset.initHairDyeingEngine(newHVEAIInitialCallback(){@OverridepublicvoidonProgress(intprogress){//初始化进度}@OverridepublicvoidonSuccess(){//初始化成功}@OverridepublicvoidonError(interrorCode,StringerrorMessage){//初始化失败}});//添加一键染发效果,指定色卡和默认强度。asset.addHairDyeingEffect(newHVEAIProcessCallback(){@OverridepublicvoidonProgress(intprogress){//一键染发进度。}@OverridepublicvoidonSuccess(){//一键染发成功}@OverridepublicvoidonError(interrorCode,StringerrorMessage){//一键染发过程失败}},colorPath,defaultStrength);//移除一键染发效果asset.removeHairDyeingEffect();1.4.3动态照片输入单张或多张照片,带动照片中人物做出微笑、点头等动作,实现动态照片效果。Dynamicphoto.gif//添加动态照片效果asset.addFaceReenactAIEffect(newHVEAIProcessCallback(){@OverridepublicvoidonProgress(intprogress){//动态照片处理进度}@OverridepublicvoidonSuccess(){//动态照片处理成功}@OverridepublicvoidonError(interrorCode,StringerrorMessage){//动态照片处理失败}});//移除动态照片特效asset.removeFaceReenactAIEffect();更多详情>>访问华为开发者联盟官网获取开发指导文档华为移动服务开源仓库地址:关注我们的GitHub和Gitee,了解HMSCore的最新技术资讯~