2 lines
1.9 KiB
JavaScript
2 lines
1.9 KiB
JavaScript
import{a9 as a,r as e,j as t,o as s,c as n,w as i,m as l,v as o,a as r,d as c,b as u,e as d,s as v,A as f,aa as m,ab as p,ac as g,g as h,a2 as _,i as w}from"./index-BWFbK6MW.js";import{_ as y}from"./nu.C7Ggybbs.js";import{_ as k}from"./_plugin-vue_export-helper.BCo6x5W8.js";const b=k(a({__name:"CustomCamera",setup(a){const k=e(),b=e(),j=e(!1);let C,x=null;async function A(){var a;if(null==(a=navigator.mediaDevices)?void 0:a.getUserMedia)try{x=await navigator.mediaDevices.getUserMedia({video:{facingMode:{ideal:"environment"}},audio:!1});const a=k.value;a.srcObject=x,await a.play(),D(),j.value=!0}catch(e){console.error(e),v({title:"无法获取摄像头权限",icon:"none"})}else v({title:"当前浏览器不支持实时相机",icon:"none"})}function D(){if(!j.value)return;const a=k.value,e=b.value,t=e.getContext("2d");a.videoWidth&&a.videoHeight&&(e.width!==window.innerWidth&&(e.width=window.innerWidth,e.height=window.innerHeight),t.drawImage(a,0,0,e.width,e.height)),C=requestAnimationFrame(D)}function M(){const a=b.value.toDataURL("image/jpeg",.9);f(),m("photoTaken",a)}function U(){W(),f()}function W(){cancelAnimationFrame(C),x&&x.getTracks().forEach((a=>a.stop()))}return t(W),(a,e)=>{const t=p,v=g,f=h,m=_,C=w;return s(),n(C,{class:"page"},{default:i((()=>[l(r(t,{ref_key:"video",ref:k,class:"video",playsinline:"","webkit-playsinline":"","x5-playsinline":"",muted:""},null,512),[[o,j.value]]),l(r(v,{ref_key:"canvas",ref:b,class:"canvas"},null,512),[[o,j.value]]),r(f,{class:"overlay",src:y,style:c({opacity:j.value?1:0})},null,8,["style"]),j.value?(s(),n(C,{key:0,class:"btn-bar"},{default:i((()=>[r(m,{class:"btn close",onClick:U},{default:i((()=>[u("关闭")])),_:1}),r(m,{class:"btn shoot",onClick:M})])),_:1})):d("",!0),j.value?d("",!0):(s(),n(C,{key:1,class:"starter"},{default:i((()=>[r(m,{class:"btn start",onClick:A},{default:i((()=>[u("开始拍照")])),_:1})])),_:1}))])),_:1})}}}),[["__scopeId","data-v-768474b2"]]);export{b as default};
|