更新记录

1.0.1(2026-06-25)

修复部分缺陷

1.0.0(2026-06-25)

  • 首发:原生 CameraX(Android) / AVFoundation(iOS) 自定义相机组件 <fsyang-camera>
  • 预览自适应任意容器、所见即所得、横竖方向自动跟随
  • 拍照:自定义成片宽度 + 自动选分辨率 + 按比例裁剪 + 实时水印 + EXIF/GPS 开关 + 无声拍照
  • 录像:设备真实档位(4K/1080P/720P) + 帧率 + 音频开关 + 自动取封面
  • 专业控制:曝光 / 变焦 / 点按对焦 / 两指缩放 / 闪光 / 前后摄
  • 权限可独立申请;Android + iOS 双端一致

平台兼容性

uni-app(4.71)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × × × × × × × × - × ×

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
× × × × - ×

自定义相机 fsyang-camera · 使用说明

原生 CameraX(Android) / AVFoundation(iOS) 自定义相机组件 <fsyang-camera>。 Android + iOS 双端一致,uni-app(vue3 / nvue) 通用。真机调试,需自定义基座 / 云打包。

🎨 界面 100% 自定义:组件只负责相机预览 + 拍照/录像/裁剪/水印等能力,所有按钮、布局、样式、交互都由你在自己的页面自由编写——文档/截图里的 UI 只是 demo 示例,想做成什么样都行,不锁定任何固定界面。


一、安装

  1. 在插件市场点「使用 HBuilderX 导入」,插件落到 uni_modules/fsyang-camera
  2. 制作自定义调试基座(含原生依赖)后再真机运行;标准基座不含相机原生库。
  3. Android 录像如需收声,在 manifest.json → App 模块配置 → 权限 勾选 RECORD_AUDIO

二、三步接入

<!-- 1. 放组件(nvue 用绝对定位铺满,flex:1 不生效) -->
<fsyang-camera
  ref="cam"
  style="position:absolute;left:0;top:0;right:0;bottom:0;"
  :mode="mode" :position="position" :flash="flash" :photoWidth="1080"
  @ready="onReady" @captured="onCapture" @error="onError" />
// 2. 申请权限
this.$refs.cam.requestPermission('camera,microphone')

// 3. 拍照 / 录像
this.$refs.cam.takePhoto()
this.$refs.cam.startRecord(); this.$refs.cam.stopRecord()
this.$refs.cam.switchCamera()

// 事件 payload 双端统一解析
parse(e){ let d=(e&&e.detail!=null)?e.detail:e; if(typeof d==='string'){try{d=JSON.parse(d)}catch(x){d={}}} return d||{} }

三、常用配置(Props)

属性 默认 说明
mode photo photo 拍照 / video 录像
position back back 后置 / front 前置
flash off off / on / auto / torch
photoWidth 1080 成片宽度,0 = 原图
crop '' 裁剪 JSON 串 {"x":0,"y":0,"w":1,"h":1}(0~1);空 = 不裁
cropBox true 是否显示裁剪取景绿框;false = 静默裁剪(不显框),仅 crop 开启时有意义
watermark '' 水印 JSON 串 {"on":true,"time":true,"location":"厦门","text":"内部资料"}
saveExif / saveLocation true / false 写 EXIF / 写 GPS
silentCapture false 无声拍照
videoQuality / videoFps fhd / 30 录像档位与帧率

四、事件

事件 触发时机 回调数据(e.detail)
@ready 相机初始化完成、可开始拍照时 设备能力:变焦/曝光范围、是否支持闪光、拍照分辨率上限、可用录像档位
@captured 拍照成功、照片生成后 path 照片路径 / width·height 宽高 / size 字节大小
@recordstop 录像结束(手动停止或到时)后 path 视频路径 / cover 封面图 / size 大小 / duration 时长(秒)
@error 出错时(权限被拒 / 设备异常 / 拍摄失败等) code 错误码 / message 错误说明

五、案例工程

fsyang-camera-demo.zip 为示例代码(拍照页 / 相册页): 导入后在插件市场点「试用」把本插件加入 uni_modules,做自定义基座即可真机运行。

六、售后

  • 支持试用,先试后买;源码版含 Android + iOS 完整 uts 源码。
  • 定制 / 对接:插件评论区留言。

隐私、权限声明

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

相机(拍照录像必需)、麦克风(录像收声)、定位(可选,仅写入照片GPS时)

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

插件本身不采集不上传任何数据;照片/视频仅存本机,GPS 仅在 saveLocation=true 时写入图片 EXIF

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