更新记录

1.3(2025-02-20)

  • 新增支持初始化时调整画面方向
  • 新增删除录像文件接口
  • 新增支持初始化控制是否返回Base64
  • 新增单独停止录像接口
  • 优化后置摄像头无法正常录像问题
  • 优化控制闪光灯判定条件
  • 修复打开录像后界面卡死灯问题
  • 修复因打开录音画面黑屏无法正常使用问题
  • 修复画面方向纠错问题
  • 修复前置镜像问题
  • 部分接口更新【向下兼容】

1.2(2024-08-05)

  • 更新支持初始化设置是否录像
  • 支持设置宽高比
  • 支持控制闪光灯
  • 更新支持设置横竖屏

1.0(2024-07-29)

1.上线 2.支持相机界面蒙版自定义 3.支持自定义是否保存到相册 4.支持拍照返回图片base64,允许设置拍照清晰度[SD(70%画质), HD(80%画质), FHD(原相机画质)] 5.支持暂停预览,前后置切换 6.支持设置宽高比

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:7.0 - 12.0 armeabi-v7a:支持,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  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原生插件配置”->”云端插件“列表中删除该插件重新选择


yyPreview-相机自定义预览-录像-拍照组件

特点

  • 支持初始化设置是否录像
  • 支持相机界面蒙版自定义
  • 支持画面方向控制
  • 支持自定义是否保存到相册
  • 支持拍照自定义是否返回图片base64
  • 允许设置拍照清晰度[SD(70%画质), HD(80%画质), FHD(原相机画质)]
  • 支持暂停预览,前后置切换
  • 支持设置宽高比
  • 支持控制闪光灯
  • 支持手动聚焦
  • 支持控制录像时是否录音

使用实例

template中调用代码

  • 注意:nvue不支持 scss语法百分比宽高
<view>
    <yy-preview ref="preview" style="width: 750rpx, height: 800rpx></yy-preview>
</view>

script操作

// 初始化控件
let initParams = {
    "mode": "SD",               // 拍照清晰度,标清SD|高清HD|超清FHD
    "orientation": "vertical",  // 画面方向 vertical(竖),horizontal(横),flip(翻转),exchange(横竖交换)
    "devicePosition": "front",  // 前置|后置|外置,值为front|back|external
    "width": 720,               // 视频宽
    "height": 1280,             // 视频高
    "aspect": "16:9",           // 宽高比,若无法确认设备宽高比,可以通过屏幕宽高来计算,或直接写入屏幕宽高
    "saveSnap": true,           // 拍照保存到相册并返回路径,默认为false
    "hookBase": true,           // 是否回调Base64,默认为true
    "isFocus": true,            // 开启手动聚焦
    "isRecord": false,          // 是否预览时同步开启录像
    "isRecordMic": true,        // 录像时是否录音
};
this.preview.init(initParams, res => {/* 完成之后即可调用开始预览 */});

// 开始预览
this.preview.start(res => {});

// 停止预览
this.preview.stop(res => { /* 若正在录像,请在录像停止后调用 */});

// 拍照【已废弃】
this.preview.snap(res => { /* 若正在录像,请在录像停止后调用 返回图片base64 */ });
// 拍照
this.preview.take(res => { /* 若正在录像,请在录像停止后调用 返回图片base64与文件路径 */ });

// 切换摄像头
this.preview.switchCamera(res => { /* 若正在录像,请在录像停止后调用 */ });

// 切换闪光灯【已废弃】
this.preview.switchFlash(res => {});
// 切换闪光灯
this.preview.toggleFlash(res => {});

// 开始录像
this.preview.startRecording(res=>{});

// 停止录像
this.preview.stopRecording(res=>{ /* 返回录像文件路径 */ });

// 删除录像文件
let param = "录像文件路径"; /* 绝对路径 */
this.preview.deleteRecordFile(param,res=>{ /* 若正在录像,请在录像停止后调用 */ });

回调说明

存在回调的功能均支持code响应

用户开发时应注意正常的code响应判定

成功:code:0, 失败:code:1
当code为1时,返回错误信息:data:"错误描述"

隐私、权限声明

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

相册,相机,内部存储

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

插件不采集任何数据

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

暂无用户评论。

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