更新记录
4.04(2026-04-18)
启动加入摄像头 id 能力,方便调用
4.03(2026-04-14)
修复权限不足的问题
4.02(2026-04-13)
统一 android 和 ios 的方法实现
查看更多平台兼容性
| Android | Android CPU类型 | iOS |
|---|---|---|
| 适用版本区间:4.4 - 16.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 | 适用版本区间:11 - 18 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
自定义相机组件 FY-CameraPreview
nvue 原生相机组件,支持拍照、录像、帧回调、双指缩放、手动对焦、曝光调节等。Android + iOS 双端。
快速开始
注意导入插件请真机调试
<CameraPreview ref="CameraPreview"></CameraPreview>
// 设置后置摄像头
this.$refs.CameraPreview.setIsbackCamera(true);
// 启动预览
// scale: 成像比例,支持 '16:9' / '4:3'(Android额外支持 '1:1')
// hd: 是否高清模式
// cameraId: 0=后摄(默认),1=前摄;启动时直接使用指定摄像头,无需二次切换
// noRecordPermissions: 是否不申请录像权限,默认 true
// showSetting: 没有权限是否提示去设置,默认 true
this.$refs.CameraPreview.start({
scale: '16:9',
hd: false,
cameraId: 0,
noRecordPermissions: true,
showSetting: true,
}, res => {});
// 停止预览(建议放到 onHide)
this.$refs.CameraPreview.stop();
// 销毁相机(建议放到 onUnload)
this.$refs.CameraPreview.destroy();
拍照
this.$refs.CameraPreview.takePhoto({
quality: 90, // 返回图像质量 1-100,默认90
width: 300, // 返回图像宽度,默认300,0=原图
returnFile: false, // 是否返回文件路径,默认false
savePath: '', // 文件保存路径(绝对路径),如 plus.io.convertLocalFileSystemURL('_downloads/xxx/')
fileName: '', // 文件名,如 demo.jpg
crop: [0,0,50,50], // 成像自动裁剪 [x,y,w,h],xw参考宽度百分比,yh参考高度百分比
}, res => {
// res.code 200=成功
// returnFile=true 时:res.url 文件路径
// returnFile=false 时:res.data base64数据
});
无声拍照(帧回调)
// 1. 开启监听视频帧
this.$refs.CameraPreview.startFrameListen(res => {});
// 2. 获取帧(停止监听前可快速重复调用)
this.$refs.CameraPreview.getFrameData({
quality: 50,
width: 300,
crop: [0,0,50,50], // 可选裁剪
}, res => {});
// 3. 停止监听
this.$refs.CameraPreview.stopFrameListen(res => {});
录像
Android 录像前准备:
start时需设置noRecordPermissions: false- 在 HBuilderX 项目模块设置里勾选录像功能
- 权限配置增加
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
// 保存路径需转换为绝对路径
const savePath = plus.io.convertLocalFileSystemURL('_doc/video/')
// profile 分辨率:1=High 3=Low 4=480P 5=720P 6=1080P 8=2160P
// orientation 视频旋转,默认270(仅Android),部分后置需传90
this.$refs.CameraPreview.startRecord({
profile: 5,
savePath: savePath,
orientation: 90,
}, res => {});
this.$refs.CameraPreview.stopRecord(res => {
// res.path 录像文件路径
// res.coverImage 封面图base64
});
相机控制
// 切换前后摄像头
this.$refs.CameraPreview.switchCamera(res => {});
// 闪光灯(仅支持后摄)
this.$refs.CameraPreview.setFlash(true); // 开启
this.$refs.CameraPreview.setFlash(false); // 关闭
this.$refs.CameraPreview.setFlashAuto(); // 自动
// 焦距 (0-99)
this.$refs.CameraPreview.setZoom(50);
// 双指缩放
this.$refs.CameraPreview.startFingerZoom(); // 开启
this.$refs.CameraPreview.cancelFingerZoom(); // 关闭
// 手动点击对焦
this.$refs.CameraPreview.startManualFocus(); // 开启
this.$refs.CameraPreview.cancelManualFocus(); // 关闭
// 曝光调节
this.$refs.CameraPreview.getExposureCompensationVal(res => {
// res.data.min ~ res.data.max
this.$refs.CameraPreview.setExposureCompensation(res.data.max);
});
// 旋转画面
this.$refs.CameraPreview.setCameraRotate(1); // 1-4
// 重置预览角度(屏幕旋转后调用)
this.$refs.CameraPreview.reSetPreviewSize();
// 像素取色(百分比坐标)
this.$refs.CameraPreview.getColor([50, 50], res => {
// res.color
});
Android 专用
// 获取设备摄像头信息
this.$refs.CameraPreview.getCamerasInfo(res => {});
// 查询支持的预览/拍照/录像分辨率
this.$refs.CameraPreview.getCustomOptSize({ cameraId: 0 }, res => {});
this.$refs.CameraPreview.getCustomPicSize({ cameraId: 0 }, res => {});
this.$refs.CameraPreview.getCustomVideoSize({ cameraId: 0 }, res => {});
// 检查录像配置是否支持
this.$refs.CameraPreview.hasProfile({ profile: 5 }, res => {});
// 设置自定义分辨率并启动
this.$refs.CameraPreview.setCameraConfigAndStart({
customOptSize: { width: 1920, height: 1080 },
customPicSize: { width: 1920, height: 1080 },
customVideoSize: { width: 1920, height: 1080 },
customBitRate: 5000000,
}, res => {});
联系作者
QQ: 37894663 | 免费试用,满意付款 | 可提供对接指导、远程协助

收藏人数:
购买(
试用
使用 HBuilderX 导入示例项目
赞赏(1)
下载 2903
赞赏 2
下载 13105
赞赏 1
赞赏
京公网安备:11010802035340号