UNPKG

@itmirror/uvc-camera-jssdk

Version:

封装uvc-camera安卓方法和上传功能的jssdk

147 lines (136 loc) 4.5 kB
<!DOCTYPE html> <html lang=""> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width,initial-scale=1.0"> <title>uvc camera</title> <style> #camera { margin-bottom: 10px; width: 320px; height: 240px; border: solid 1px #3BA3F8; } button { margin: 0 10px; } </style> </head> <body> <div class="app"> <div id="camera"></div> <div class="action"> <button id="statusBtn" onclick="doChange()">开始</button> <button onclick="changeLight()">换灯</button> <button onclick="takePicture()">拍照</button> <button onclick="upload()">上传</button> <button onclick="destroy()">销毁</button> </div> <div id="result"></div> </div> </body> <script src="../lib/guaguaData.js"></script> <script src="../lib/index.js"></script> <script> const $result = document.getElementById('result'); const $statusBtn = document.getElementById('statusBtn'); // 初始化 let isInit = false; let isOpen = false; let c; init(); function init(cb = function() {}) { c = uvcCamera.init('camera', { host: 'http://192.168.115.217:7001', // 上传地址 uploadAction: '/skinTest/uploadImg', // 上传地址 successAction: '/skinTest/uploadImgSuccess', // 通知地址 devData: guaguaData, buttonEvent: function() { console.log('button-handle'); takePicture(); } }, function () { isInit = true; cb(); console.log('init success') }); } function doChange() { if (!isInit) { init(changeStatus); } else { changeStatus(); } } // 开始 or 停止 let isStop = true; function changeStatus() { if (!isOpen) { // 开启摄像头 c.open((json) => { if (!json.status) { console.log('摄像头开启失败!') isStop = true; $statusBtn.innerText = '开始'; return; } isOpen = true; isStop = false; $statusBtn.innerText = '停止'; }) return } isStop = !isStop; $statusBtn.innerText = isStop ? '开始' : '停止'; isStop ? c.stop() : c.start(); }; // 换灯 let light_i = 0; const lights = ['green', 'red', 'blue']; function changeLight() { light_i++; light_i = light_i > lights.length - 1 ? 0 : light_i; c.setLight(lights[light_i]) } // 拍照 function takePicture() { c.takePicture(function (data) { console.log('data is: ', data) const img = document.createElement('img'); img.src = data; $result.appendChild(img); setTimeout(() => { c.start(); }, 1500); }); } // 上传 function upload() { c.upload({ success: function(res) { $result.innerText = JSON.stringify(res) console.log(res) console.log('上传成功!') }, fail: function(err) { console.log(err) console.log('上传失败...') }, progress: function(val) { console.log(val) console.log('上传进度: ', val); }, }) } function destroy() { if (c) { c.destroy(); c = null; isStop = true; isInit = isOpen = false; $statusBtn.innerText = '开始'; } } </script> </html>