更新记录
0.0.3(2021-12-20)
处理兼容问题。
0.0.2(2020-04-01)
修复云打包无法正常调用插件的问题。
0.0.1(2020-03-19)
1、实现视频高清、标清和省流量三种压缩方式; 2、压缩中可以回调压缩进度; 3、压缩完成后回到结果文件地址。
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:4.4 - 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原生插件配置”->”云端插件“列表中删除该插件重新选择
-
引入插件
const videoCompressorModule = uni.requireNativePlugin('Lele-Video-Compressor_VideoCompressorModule');
-
启动压缩
-
调用start函数,传入参数如下:
-
originalPath:字符串类型,本地文件路径;
-
appName:字符串类型,app名称(压缩后会根据此参数进行文件保存);
-
isUseTimestampNaming://布尔类型,默认为false,可选,是否以时间戳命名文件,默认命名格式为'appName-temp';
-
level:字符串类型,可选,压缩等级,默认普通。{high-保持高质量,medium-普通,low-省流};
-
-
结果回调:
-
回调中一定存在code和msg字段,根据code的值来做进一步的业务;
-
code值为字符串:"0"-压缩成功;"1"-压缩中;"-1"-压缩失败;
-
code值为1时,回调一个字段为progress的进度值。
-
-
实例代码:
//引入插件 const videoCompressorModule = uni.requireNativePlugin('Lele-Video-Compressor_VideoCompressorModule'); const modal = uni.requireNativePlugin('modal'); compressor(oPath) { let that = this videoCompressorModule.start({ originalPath: oPath,//原始文件地址 appName: "test",//app名 isUseTimestampNaming: false,//可选,是否以时间戳命名文件,默认命名格式为'appName-temp' level: "medium"//可选,压缩等级,默认普通。{high-保持高质量,medium-普通,low-省流} }, result => { const msg = JSON.stringify(result); switch (result.code) { case '0': modal.toast({ message: msg, duration: 1.5 }); that.progress = 100 console.log("callback---code--" + result.code); console.log("callback---msg--" + result.msg); console.log("callback---compressedPath--" + result.compressedPath); that.compressedPath = result.compressedPath break; case '1': that.progress = Math.round(result.progress * 100) / 100 // that.progress = result.progress.toFixed(2) console.log("callback---code--" + result.code); console.log("callback---msg--" + result.msg); console.log("callback---progress--" + result.progress); break; case '-1': modal.toast({ message: msg, duration: 1.5 }); console.log("callback---code--" + result.code); console.log("callback---msg--" + result.msg); break; } }); },
-
-
删除文件
-
调用deleteFiles函数删除文件,此操作不进行回调,参入如下:
- path:文件路径
-
结果回调:
-
回调中一定存在code和msg字段,根据code的值来做进一步的业务;
-
code值为字符串:"0"-删除成功;"-1"-压缩失败;
-
-
实例代码
deleteFile() { let that = this videoCompressorModule.deleteFile({ path: that.compressedPath//文件地址 }, result => { const msg = JSON.stringify(result); switch (result.code) { case '0': modal.toast({ message: msg, duration: 1.5 }); console.log("callback---code--" + result.code); console.log("callback---msg--" + result.msg); break; case '-1': modal.toast({ message: msg, duration: 1.5 }); console.log("callback---code--" + result.code); console.log("callback---msg--" + result.msg); break; } }); },
-