说明:本文档适用于小部件3.0。
相机组件。支持基本的相机操作如拍照、扫码等。
iOS:10.3.10及以上版本。
Android:10.3.16及以上版本。
需要 小部件 2.0及以上版本。
属性 |
类型 |
描述 |
是否支持 |
将要支持 |
mode |
String |
模式。相机模式或者扫码模式。 默认值:normal。 可选值:normal / scanCode |
是 |
/ |
device-position |
String |
前置或者后置摄像头。 默认值:back。 可选值:front / back。 |
是 |
/ |
flash |
String |
闪光灯模式(auto/on/off)。 默认值:auto。 可选值:auto / on / off。 |
是 |
/ |
frame-size |
String |
预览帧尺寸。 默认值:medium。 可选值:small / medium / large。 |
是 |
/ |
onStop |
EventHandle |
摄像头在非正常终止时触发,如退出后台等情况。 |
是 |
/ |
onError |
EventHandle |
用户不允许使用摄像头时触发。 |
是 |
/ |
onScanCode |
EventHandle |
在扫码识别成功时触发,仅在 mode="scanCode" 时生效。 |
是 |
/ |
名称 |
描述 |
事件原型 |
onStop |
摄像头在非正常终止时触发,如退出后台等情况。 |
(e: Event)=>void Event: detail |
onError |
用户不允许使用摄像头时触发。 |
(e: Event)=>void Event: detail |
onScanCode |
在扫码识别成功时触发,仅在 mode="scanCode" 时生效。 |
(e: Result)=>void Result: detail result - 识别结果 type - 码类型 |
API名称 |
入参 |
返回值 |
描述 |
my.createCameraContext(cameraId: String) |
camera Id |
CameraContext |
传入cameraId,返回一个cameraContext上下文。 |
API名称 |
入参 |
返回值 |
描述 |
cameraContext.takePhoto(object: Object) |
Object: quality - 成像质量(normal|low|high) success - 成功回调 fail - 失败回调 complete - 接口调用结束回调 |
Void |
拍照。 |
cameraContext.onCameraFrame(callback: Function) |
Function入参 width - 宽 height - 高 data - 帧数据(ArrayBuffer) |
CameraFrameListener |
监听相机帧数据。 注: 暂不支持。 |
API名称 |
入参 |
返回值 |
描述 |
start |
Void |
Void |
开始监听。 |
stop |
Void |
Void |
结束监听。 |
<camera id="camera_take" mode="{{mode}}" device-position="{{devicePosition}}" flash="{{flash}}" frame-size="{{frameSize}}" onScancode="scanCode" onError="error" onStop="stop" style=" width: 100%; height: 300px; margin-top: 55px"> </camera>
Page({ data: { url_temp: 'null', mode:'', devicePosition:'', flash:'', frameSize:'', quality:'', frameData:'', }, error(e) { console.log(e.detail); my.alert({content : "cameraError" + JSON.stringify(e)}); }, scanCode(e){ console.log(e.detail); my.alert({content : "cameraScanCode" + JSON.stringify(e)}); }, stop(e) { console.log(e.detail); my.alert({content : "cameraStop" + JSON.stringify(e)}); }, off(e) { console.log(e.detail); my.alert({content : "cameraOff" + JSON.stringify(e)}); } });
const context = my.createCameraContext() const listener = context.onCameraFrame((frame) => { console.log(frame.data instanceof ArrayBuffer, frame.width, frame.height) }) listener.start();// 开始监听 listener.stop();// 结束监听
目前尚不支持。