更新记录

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

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


美颜相机插件

功能简述:

  1. 支持预览
  2. 拍照
  3. 拍视频
  4. 美颜等级设置
  5. 曝光模式设置
  6. 对焦模式设置
  7. 焦距调整
  8. 闪光灯模式调整
  9. 支持vue2/vue3
  10. 分辨率预置
  11. 前后摄像头预置与切换

使用说明

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/>

标签属性

  1. recWidth 预览宽度,一般 480,640,720,960,1280,1920
  2. recHeight 预览高度,一般360,480, 540,720, 1080
  3. camera 前置与后置
    • 1 前置
    • 0 后置
  4. 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;//最大值
    });
});

隐私、权限声明

1. 本插件需要申请的系统权限列表:

相机 麦克风

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问