更新记录
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:未测试 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在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原生插件配置”->”云端插件“列表中删除该插件重新选择
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:"错误描述"