1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          瀏覽器調用攝像頭(怎么在html5中調用攝像頭)

          來源:互聯網轉載 時間:2024-05-13 22:37:32

          調用攝像頭

          第一種方法navigator.getUserMedia用法詳見mdn ,代碼如下:

          <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>攝像頭調用1</title></head><body><videoid="v"></video><script>!(function(){functionuserMedia(){returnnavigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||null;}if(userMedia()){varconstraints={video:true,audio:false};varmedia=navigator.getUserMedia(constraints,function(stream){varv=document.getElementById('v');varurl=window.URL||window.webkitURL;v.src=url?url.createObjectURL(stream):stream;v.play();},function(error){console.log("ERROR");console.log(error);});}else{console.log("不支持");}})();</script></body></html>

          第二種方法navigator.mediaDevices.getUserMedia用法詳見mdn。navigator.mediaDevices.getUserMedia 其實和第一種差不多,主要第二種返回是一個 Promise 對象,代碼如下:

          <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>攝像頭調用2</title></head><body><videoid="v"></video><script>!(function(){//老的瀏覽器可能根本沒有實現mediaDevices,所以我們可以先設置一個空的對象if(navigator.mediaDevices===undefined){navigator.mediaDevices={};}if(navigator.mediaDevices.getUserMedia===undefined){navigator.mediaDevices.getUserMedia=function(constraints){//首先,如果有getUserMedia的話,就獲得它vargetUserMedia=navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;//一些瀏覽器根本沒實現它-那么就返回一個error到promise的reject來保持一個統一的接口if(!getUserMedia){returnPromise.reject(newError('getUserMediaisnotimplementedinthisbrowser'));}//否則,為老的navigator.getUserMedia方法包裹一個PromisereturnnewPromise(function(resolve,reject){getUserMedia.call(navigator,constraints,resolve,reject);});}}constconstraints={video:true,audio:false};letpromise=navigator.mediaDevices.getUserMedia(constraints);promise.then(stream=>{letv=document.getElementById('v');//舊的瀏覽器可能沒有srcObjectif("srcObject"inv){v.srcObject=stream;}else{//防止再新的瀏覽器里使用它,應為它已經不再支持了v.src=window.URL.createObjectURL(stream);}v.onloadedmetadata=function(e){v.play();};}).catch(err=>{console.error(err.name+":"+err.message);})})();</script></body></html>

          拍照

          思路是設置一個標志變量 videoPlaying 看看是否 video 有在 play,監聽拍照按鈕的點擊事件,如果videoPlaying 為 true ,使用一個canvas 獲取 video 的寬高(默認 canvas 是不顯示的),然后使用 canvas 的drawImage,然后使用 canvas 的 toDataURL返回一個 data url,將這個 url,設置在一個 img 標簽上即可?

          第一種方法navigator.getUserMedia實現代碼:

          <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>拍照1</title></head><body><buttonid="take">拍照</button><br/><videoid="v"style="width:640px;height:480px;"></video><canvasid="canvas"style="display:none;"></canvas><br/><imgsrc="http://placehold.it/640&text=Your%20image%20here%20..."id="photo"alt="photo"><script>!(function(){functionuserMedia(){returnnavigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||null;}if(userMedia()){letvideoPlaying=false;letconstraints={video:true,audio:false};letvideo=document.getElementById('v');letmedia=navigator.getUserMedia(constraints,function(stream){leturl=window.URL||window.webkitURL;video.src=url?url.createObjectURL(stream):stream;video.play();videoPlaying=true;},function(error){console.log("ERROR");console.log(error);});document.getElementById('take').addEventListener('click',function(){if(videoPlaying){letcanvas=document.getElementById('canvas');canvas.width=video.videoWidth;canvas.height=video.videoHeight;canvas.getContext('2d').drawImage(video,0,0);letdata=canvas.toDataURL('image/webp');document.getElementById('photo').setAttribute('src',data);}},false);}else{console.log("不支持");}})();</script></body></html>

          第二種navigator.mediaDevices.getUserMedia實現方法:

          <!doctypehtml><htmllang="en"><head><metacharset="UTF-8"><title>拍照2</title></head><body><buttonid="take">拍照</button><br/><videoid="v"style="width:640px;height:480px;"></video><canvasid="canvas"style="display:none;"></canvas><br/><imgsrc="http://placehold.it/640&text=Your%20image%20here%20..."id="photo"alt="photo"><script>!(function(){//老的瀏覽器可能根本沒有實現mediaDevices,所以我們可以先設置一個空的對象if(navigator.mediaDevices===undefined){navigator.mediaDevices={};}if(navigator.mediaDevices.getUserMedia===undefined){navigator.mediaDevices.getUserMedia=function(constraints){//首先,如果有getUserMedia的話,就獲得它vargetUserMedia=navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;//一些瀏覽器根本沒實現它-那么就返回一個error到promise的reject來保持一個統一的接口if(!getUserMedia){returnPromise.reject(newError('getUserMediaisnotimplementedinthisbrowser'));}//否則,為老的navigator.getUserMedia方法包裹一個PromisereturnnewPromise(function(resolve,reject){getUserMedia.call(navigator,constraints,resolve,reject);});}}constconstraints={video:true,audio:false};letvideoPlaying=false;letv=document.getElementById('v');letpromise=navigator.mediaDevices.getUserMedia(constraints);promise.then(stream=>{//舊的瀏覽器可能沒有srcObjectif("srcObject"inv){v.srcObject=stream;}else{//防止再新的瀏覽器里使用它,應為它已經不再支持了v.src=window.URL.createObjectURL(stream);}v.onloadedmetadata=function(e){v.play();videoPlaying=true;};}).catch(err=>{console.error(err.name+":"+err.message);})document.getElementById('take').addEventListener('click',function(){if(videoPlaying){letcanvas=document.getElementById('canvas');canvas.width=v.videoWidth;canvas.height=v.videoHeight;canvas.getContext('2d').drawImage(v,0,0);letdata=canvas.toDataURL('image/webp');document.getElementById('photo').setAttribute('src',data);}},false);})();</script></body></html>

          以上就是怎么在html5中調用攝像頭,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注本站行業資訊頻道。

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          (相關資料圖)提起x360手柄怎么在電腦上用大家在熟悉不過了,被越來越多的人所熟知,那你知道x360手柄怎么在電腦上用嗎?快和小編一起去了解一下吧!將手柄無線接收器,插入電腦,電腦會自動安裝好驅動,然后手柄的綠燈將會亮起;接著打開手柄電源,然后按下接收器器上的一個小按鈕。接著再按手柄上側面上的一個小按鈕,你就會看到西瓜鍵此時在轉圈,等兩三秒然后手柄上的綠燈常亮了就表示匹對成功了,然后就代表手柄可以...

          中國的貨幣發行機構是中國人民銀行。中國人民銀行成立于1948年12月1日,是在三所銀行的基礎上建立的。中國人民銀行簡稱央行,是中國的中央銀行。1983年, 中國的相關部門決定,賦予中國人民銀行行使央行職能的權力。1995年,全國人大制定了第一部關于中國人民銀行的法律。中國人民銀行的總部位于北京市。晚清到民國初期,銀行林立,各地金融機構風起云涌。國民政府、地方勢力、割據的軍閥、都為了各自利益,成立金...

          紅嶺創投暫停提現是什么情況?2018年9月,深圳市金融辦對紅嶺創投的凈值標提出嚴厲批評,周世平在當天就發公告,宣布從19年4月1日起停發凈值標。于是在2019年4月8日晚間,紅嶺創投創始人周世平通過公司官網論壇“紅嶺社區”發布了《關于紅嶺系各平臺的重要通知》?!锻ㄖ凤@示,近期紅嶺系各平臺都受到嚴重的擠兌,加上不良資產處置進度不理想,計劃中的3億多還款以及深圳某上市公司1....

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>