【uniapp原生插件】UVCCamera插件接口说明
【uniapp原生插件】UVCCamera插件接口说明
集成准备
- 请将nativeplugins/Lizii-uvccamera-sdk 添加到工程对应位置(针对离线)。
- manifest.json 中原生插件配置添加“Lizii-UVCCamera插件”。
- 用的app签名、包名制作uniapp调试基座。
制作自定义基座来运行调试。
接口说明
- 视频预览需要用到原生的预览view,使用原标签的页面必须是nvue。
- 插件标签
<Lizii-UVCCameraView ref="cameraView" style="width:750rpx;height:800rpx" @onDeviceCallback="onDevice"/>
- 插件的相关接口通过标签对象来调用 “this.$refs.cameraView.xxx”
例如:this.$refs.cameraView.startPreview(); 就是调用了startPreview()函数。
接口及参数
1. 回调事件:onDevice及事件类型
此处@onDeviceCallback=“onDevice” 定义的函数是onDevice,名称可自行任意定义。
onDevice(e){console.log(e);var eventType = e.detail.event;if(eventType == "onDeviceOpen"){//相机打开}else if(eventType == "onDeviceonClose"){//相机关闭}else if(eventType == "onStartPreview"){//预览中}else if(eventType == "onStopPreview"){//预览停止}else if(eventType == "onError"){//出错 //e.detail.msg 出错信息}else if(eventType == "onButton"){//手柄按键//e.detail.button buttonId//e.detail.state button 状态 按下或松开,一次点按回调两次,state不同}else if(eventType == "onAttach"){this.$refs.cameraView.setPreviewSize(1920,1080); //设置默认分辨率 //查找到usb设备,接下来请求权限this.$refs.cameraView.requestPermission(e.detail.deviceId);}else if(eventType == "onDettach"){//usb丢失}else if(eventType == "onConnect"){//usb连上(有权限)}else if(eventType == "onDisconnect"){//usb断开(有权限)}else if(eventType == "onCancel"){//usb权限 无权限(拒绝)}else if(eventType == "onCapture"){//拍照 //e.detail.filePath 照片路径}}
2. 请求usb设备权限requestPermission
当插件查找到usb设备之后(onAttach)调用,获取设备使用授权,deviceId,从事件的detail中获得:e.detail.deviceId。
this.$refs.cameraView.requestPermission(int deviceId);
3. 打开摄像头open
在授权后,回调onConnect事件,插件内部会自动调用open,一般情况下外部不需要调用。
this.$refs.cameraView.open();
4. 预览摄像头画面
同3,在onConnect事件中,插件自动调用了open之后会继续调用startPreview,一般情况下不需要调用
this.$refs.cameraView.startPreview();
5. 停止预览stopPreview
与startPreview成对调用
this.$refs.cameraView.stopPreview();
6. 设置分辨率
插件内部默认分辨率是640x480,如果要修改默认分辨率,需要在onConnect事件中设定。
预览中设置分辨率,需要先stopPreview > setPreviewSize > startPreview 才有效。
this.$refs.cameraView.setPreviewSize(640,480);//1280x720
7. 拍照
预览中拍照有效,回调事件onCapture
var unipath = "_doc/shot.jpeg";
var imagePath = plus.io.convertLocalFileSystemURL(unipath);
this.$refs.cameraView.capture(imagePath);
8. 控制或设定摄像头灯光
0X11 0XFF 白光,
0X12 0XFF 偏光,
0X13 0XFF UV光,
0X10 0XFF 关灯
this.$refs.cameraView.ctrlFlash({flag:0x11,value:0xff});
9. 关闭摄像头close
this.$refs.cameraView.close();
10. 释放所有插件资源和usb连接
this.$refs.cameraView.destroy();