更新记录
1.0.5(2021-10-21)
1、修复编辑视频的自动删除原文件的问题
1.0.4(2021-10-19)
修复判断删除视频的bug
1.0.3(2021-10-18)
1、修复资源冲突 2、新增是否删除原视频的参数
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.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原生插件配置”->”云端插件“列表中删除该插件重新选择
一、使用例子
<template>
<div>
<button type="primary" @click="openCamera">openCamera</button>
</div>
</template>
<script>
// 获取 module
var testModule = uni.requireNativePlugin("MZP-ShotCamera");
//申请权限
function plusReady() {
var Build = plus.android.importClass("android.os.Build");
var Manifest = plus.android.importClass("android.Manifest");
var MainActivity = plus.android.runtimeMainActivity();
var ArrPermissions = [
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
];
function PermissionCheck(permission) {
if (Build.VERSION.SDK_INT >= 23) {
if (MainActivity.checkSelfPermission(permission) == -1) {
return false;
}
}
return true;
}
function PermissionChecks(Arr) {
var HasPermission = true;
for (var index in Arr) {
var permission = Arr[index];
//如果此处没有权限,则是用户拒绝了
if (!PermissionCheck(permission)) {
HasPermission = false;
break;
}
}
return HasPermission;
}
function PermissionRequest(Arr) {
var REQUEST_CODE_CONTACT = 101;
if (Build.VERSION.SDK_INT >= 23) {
MainActivity.requestPermissions(Arr, REQUEST_CODE_CONTACT);
}
}
//如果没有权限,则申请
if (!PermissionChecks(ArrPermissions)) {
PermissionRequest(ArrPermissions);
} else { //如果拥有权限,那么干点啥吧^_^
//.......
}
}
export default {
onLoad() {
plusReady();
},
methods: {
openCamera() {
// 调用异步方法
testModule.openCamera({},
(e) => {
testModule.openVideoEdit({
"path": e.path,
"pagesize": 20,
"musicCategorys": [{
"name": "中国金曲",
"typeid": "1"
}, {
"name": "日本金曲",
"typeid": "2"
}]
}, (ve) => {
if (ve.code == 0) {
testModule.closeCamera();
testModule.closeVideoEdit();
testModule.openCoverSelecter(ve.path, 15, (ce) => {
//处理ce.path封面
testModule.closeCoverSelecter();
});
}
}, function(e) {
var musiclist = [{
"id": 1,
"title": "测试音乐1",
"author": "测试者",
"duration": 15000,
"url": "http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3",
"album": ""
}];
testModule.finishMusicList(musiclist);
}, function(e) {
var searchmusiclist = [{
"id": 1,
"title": "测试音乐1",
"author": "测试者",
"duration": 15000,
"url": "http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3",
"album": ""
}];
testModule.finishSearchMusicList(searchmusiclist);
});
});
}
}
}
</script>
二、接口说明
1、拍摄模块
1.1、openCamera 打开拍摄模块
第一个参数为配置项,有如下可配置项:
{
"expectWidth":720, //拍摄的视频宽度
"expectHeight":1280, //拍摄的视频高度
"fullscreen":false, //是否全屏拍摄
"backCamera":true //是否初始为后置摄像头
}
第二个参数为拍摄回调函数,返回参数如下:
{
"path":"xxx",
"type":0 //0 为视频(目前只有视频)
}
第三个参数为上传回调函数,返回 path。当不传这个参数时,不会显示上传按钮
1.2、closeCamera 关闭拍摄模块
关闭拍摄页面
2、视频编辑模块
2.1、openVideoEdit 打开编辑模块
第一个参数为配置项,有如下可配置项:
{
"path":“xxx”, //要编辑的视频路径
"pagesize":20, //分页大小,这里代表配乐的分页大小
"rawDeleted":true //是否编辑后删除原视频
"musicCategorys":[{"name":"ddd","typeid":1}] //网络音乐的栏目
}
第二个参数是回调,返回参数如下:
{
"code":0, //0 表示点击下一步生成视频,1 表示点击返回键返回
"path":"xxx"//为 0 时有
}
第三个参数是配乐分页回调,返回参数如下:
{
"page":1, //分页索引
"type":""//配乐栏目
}
第四个参数是配乐搜索回调,返回参数如下:
{
"page":1, //分页索引
"key":""//搜索的关键字
}
2.2、closeVideoEdit 关闭编辑模块
关闭编辑页面
2.3、finishMusicList 返回配乐列表
完成配乐列表返回数据,配乐项格式如下:
[{
"id": 1,
"title": "测试音乐 1",
"author": "测试者",
"duration": 15000,//单位毫秒
"url":"http://downsc.chinaz.net/Files/DownLoad/sound1/201906/11582.mp3",
"album": "显示的图片地址"
}]
2.4、finishSearchMusicList 返回配乐搜索列表
完成搜索配乐列表返回数据,格式同上
3、视频裁剪模块
3.1、openVideoCut 打开视频裁剪模块
第一个参数为 path 字符串,表示要裁剪视频路径
第二个参数为结果回调,回调参数
{"path":"xxx"}
表示已裁剪的视频路径
3.2、closeVideoCut 关闭视频裁剪模块
4、封面选择模块
4.1、openCoverSelecter 打开封面选择模块
第一个参数 path 字符串,是视频路径
第二个参数 thumbCount,表示显示的封面数量
第三个参数为结果回调,回调参数
{"path":"xxx"}
表示图片地址
4.2、closeCoverSelecter 关闭封面选择模块