更新记录
1.2(2023-10-22)
修复ios录制视频变形问题,设置美颜等级参数和android参数统一。
1.1(2023-06-29)
更新相机和麦克风权限申请接口。
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
美颜相机插件
功能简述:
- 支持预览
- 拍照
- 拍视频
- 美颜等级设置
- 曝光模式设置
- 对焦模式设置
- 焦距调整
- 闪光灯模式调整
- 支持vue2/vue3
- 分辨率预置
- 前后摄像头预置与切换
使用说明
Android权限
android 需要sdcard存储权限/相机权限/录音权限,请优先申请再使用
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 摄像头权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature android:name="android.hardware.camera.flash"/>
<uses-feature android:name="android.hardware.camera.front"/>
<uses-feature android:name="android.hardware.camera.level.full"/>
<!-- 录音权限-->
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
iOS权限
ios 需要相册访问权限/相机权限/录音权限,请在manifest.json中勾选并填写提示信息
插件标签
<Lizii-CameraView ref="cameraView" style="width: 750rpx;height: 1000rpx;"
recWidth="1280"
recHeight="720"
camera=1
beautyLevel=1/>
标签属性
- recWidth 预览宽度,一般 480,640,720,960,1280,1920
- recHeight 预览高度,一般360,480, 540,720, 1080
- camera 前置与后置
- 1 前置
- 0 后置
- beautyLevel默认美颜级别
标签函数
标签函数均用标签对象来调用 例如:this.$refs.cameraView.xxx(yyy);
setEventCallback(callback)设置回调
此接口vue2和vue3都可以使用,由于vue3标签事件不可用,vue3只能用这个函数来得到插件的事件。
this.$refs.cameraView.setEventCallback(function(res){
var type = res.type;
});
设置美颜等级setBeautyLevel(level)
level 取值:1-5
var cameraView = this.$refs.cameraView;
cameraView.setBeautyLevel(4);
开始预览startPreview
插件不会自动预览,需要调用startPreview启动预览
var cameraView = this.$refs.cameraView;
cameraView.startPreview(false);//参数暂时无效
切换摄像头switchCamera
多个摄像头的情况下,可切
var cameraView = this.$refs.cameraView;
cameraView.switchCamera();
拍照 takePhoto
拍照传入有效的文件路径,照片存到对应的文件中
var cameraView = this.$refs.cameraView;
let path = plus.io.convertLocalFileSystemURL("_www/static/pic.jpeg");
cameraView.takePhoto(path,true);
开始录制 startRecord
视频存到对应的文件中
let path = plus.io.convertLocalFileSystemURL("_www/static/video.mp4");
var cameraView = this.$refs.cameraView;
cameraView.startRecord({
videoPath:path
});
停止录制stopRecord
var cameraView = this.$refs.cameraView;
cameraView.stopRecord();
对焦模式setFocusMode
一般以持续对焦模式即可
var mode = 0;
/* 0 FocusModeLocked
1 FocusModeAutoFocus
2 FocusModeContinuousAutoFocus
下面仅为android独有
3 FOCUS_MODE_FIXED
4 FOCUS_MODE_MACRO
5 FOCUS_MODE_EDOF
*/
var cameraView = this.$refs.cameraView;
cameraView.isFocusModeSupported(mode,function(res){
console.log(res);
if(res){
cameraView.setFocusMode(mode);
}
});
曝光模式setExposureMode
var cameraView = this.$refs.cameraView;
var mode = 0;
/*
0 ExposureModeLocked
1 ExposureModeAutoExpose
下面仅ios独有
2 ExposureModeContinuousAutoExposure
3 ExposureModeCustom
*/
cameraView.isExposureModeSupport(mode,(res)=>{
console.log(res);
cameraView.setExposureMode(mode);
});
闪光灯模式setFlashMode
var cameraView = this.$refs.cameraView;
var mode = 0;
/*
0 FLASH_MODE_OFF
1 FLASH_MODE_ON
2 FLASH_MODE_AUTO
下面仅android独有
3 FLASH_MODE_RED_EYE
4 FLASH_MODE_TORCH
*/
cameraView.isFlashModeSupported(mode,(res)=>{
cameraView.setFlashMode(mode);
});
变焦倍数setZoomValue
变焦倍数,介于最小最大之间。如1.0,1.5,3.0等
var cameraView = this.$refs.cameraView;
cameraView.isZoomSupported((res)=>{
console.log(res)
//获取区间,在区间内选择一个值传入setZoomValue(zoomValue);
cameraView.getZoomRange((res1)=>{
console.log(res1)
var min = res1.minZoom;//最小值,一般也是1.0
var max = res1.maxZoom;//最大值
});
});