更新记录
1.0.1(2021-11-09)
版本发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:7.0 - 11.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
简介
视频编辑服务(Video Editor Kit)是华为快速构建视频编辑能力的服务,插件集成视频编辑UI SDK,提供产品级UI界面。
功能
- 支持多视频、多图片快速删除、混合导入,可自由调整片段排放顺序和时长,快速进入编辑界面。为了更好的编辑操作体验,建议导入1080p及以下的视频。
- 支持剪辑基本操作,包括分割、删除、音量、比例、变速、画布、旋转、裁剪、动画、蒙版、镜像、复制、替换。
- 支持添加滤镜,可自由调整亮度、对比度、饱和度、色调、色温、锐化等参数。
- 支持画中画功能,在视频中插入另一视频,使原视频全屏播出的同时,在画面的小面积区域上同时播出插入的另一视频。
- 支持添加音乐/音效、录音和本地视频音频提取,可对音频淡入淡出、音量调节、变速等。
- 支持保存创作作品草稿,在创作作品列表中可删除草稿。
- 支持导出视频,可抽取视频中任意一帧画面或导入相册中的图片作为封面,设置导出视频的分辨率(最高支持4K)和帧率(最高支持60帧)后,最终打包生成为MP4格式的视频。
- 提供内容丰富的素材库供开发者使用,后续会不断丰富更新,并且会提供免费内容给开发者使用。
- 支持将高分辨率视频降采样到低分辨率。
联系
有任何问题联系插件作者QQ:1032488929 群:954807577
配置和使用
1. 配置AppGallery Connect
1.1 登录AppGallery Connect网站,点击“我的项目”
1.2 在项目列表中找到您的项目(如没有可添加新项目)
1.3 在“项目设置 > 常规”页面的“应用”区域(如没有可新建应用),点击“agconnect-services.json”下载配置文件
1.4 在“增长 > 视频编辑服务”中开启服务
2. 添加AppGallery Connect配置文件
插件需要依赖1.3中下载的agconnect-services.json配置文件,由于uniapp目前不支持直接对插件进行配置文件的添加,故通过另一种方式进行配置文件的集成。
2.1 在uniapp项目的manifest.json的APP模块配置中勾选uniPush推送(项目本身可不用推送功能)
2.2 在厂商推送设置--华为模块中上传agconnect-services.json配置文件
3. 插件的使用
init(初始化)
{"LicenseId":"","apiKey":""}
参数 | 含义 |
---|---|
LicenseId | 唯一标识ID |
apiKey | AppGallery Connect注册应用时分配的apikey |
getDraftList(获取草稿列表)
参数 | 含义 |
---|---|
无 | 无 |
editor(开始视频编辑)
参数 | 含义 |
---|---|
无 | 无 |
draftEditor(草稿编辑)
{"draftId":""}
参数 | 含义 |
---|---|
draftId | 草稿的ID |
deleteDrafts(删除草稿)
{"draftIds":["",""]}
参数 | 含义 |
---|---|
draftIds | 需要删除的草稿ID列表 |
示例代码
<template>
<view class="content">
<view>
<button @click="init">初始化</button>
<button @click="getDraftList">获取草稿列表</button>
<button @click="editor">编辑视频</button>
<button @click="deleteDrafts">删除草稿</button>
</view>
<view>
<view>草稿列表</view>
<view v-for="(item,index) in list" :key="index" class="list" @click="draftEditor(item.draftId)">
<image :src="'file://'+item.draftCoverPath"></image>
</view>
</view>
</view>
</template>
<script>
var videoModule = uni.requireNativePlugin("wss-videoEditor")
export default {
data() {
return {
list:[]
}
},
onLoad() {
},
methods: {
init(){
videoModule.init({"LicenseId":"",
"apiKey":""},
(ret) => {
console.log(ret)
})
},
getDraftList(){
videoModule.getDraftList(null,
(ret) => {
this.list = ret.data
console.log(this.list)
})
},
editor(){
videoModule.editor({},
(ret) => {
console.log(ret)
})
},
draftEditor(draftId){
videoModule.draftEditor({"draftId":draftId},
(ret) => {
console.log(ret)
})
},
deleteDrafts(){
var ids = [];
for (var i = 0; i < this.list.length; i++) {
ids.push(this.list[i].draftId)
}
var draftIds = {"draftIds":ids};
videoModule.deleteDrafts(draftIds,
(ret) => {
console.log(ret)
})
}
}
}
</script>