麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JavaScript > 正文

詳解HTML5 使用video標簽實現選擇攝像頭功能

2019-11-19 15:04:50
字體:
來源:轉載
供稿:網友

詳解HTML5 使用video標簽實現選擇攝像頭功能

1. html

// jquery reference  // <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> //     <input type="hidden" name="imgValue" id="imgValue" />   <button id="btnOpen1" class="btn btn-default" type="button" >Open WebCam</button>   <select id="videoSource" ></select>     <div id="vdoOne" style="display:none">     <video id="video" style="margin-top:15px;margin-bottom:15px;" width="300" autoplay></video>     <canvas id="canvasPreview" style="margin-top:15px;" width="300" height="224"></canvas>     <canvas id="canvasUpload" style="display:none;" width='300' height='224'></canvas>     <button id="snap" class="btn btn-default" type="button">Snap Photo</button>   </div>   

2. javascript

<script>   //// Elements for taking the snapshot     var canvasPreview = document.getElementById('canvasPreview');     var canvasUpload = document.getElementById('canvasUpload');     var contextPreview = canvasPreview.getContext('2d');     var contextUpload = canvasUpload.getContext('2d');         //#################### Video Source #######################3     var videoElement = document.querySelector('video');     var videoSelect = document.querySelector('select#videoSource');       navigator.mediaDevices.enumerateDevices()       .then(gotDevices).then(getStream).catch(handleError);       videoSelect.onchange = getStream;         function gotDevices(deviceInfos) {       for (var i = 0; i < deviceInfos.length; ++i) {         var deviceInfo = deviceInfos[i];         var option = document.createElement('option');         option.value = deviceInfo.deviceId;         if (deviceInfo.kind === 'videoinput') {           option.text = deviceInfo.label ||             'camera ' +             (videoSelect.length + 1);           videoSelect.appendChild(option);         } else {           console.log('Found ome other kind of source/device: ', deviceInfo);         }       }     }       var _streamCopy = null;     function getStream() {       if (_streamCopy != null) {         try {           _streamCopy.stop(); // if this method doesn't exist, the catch will be executed.         } catch (e) {           _streamCopy.getVideoTracks()[0].stop(); // then stop the first video track of the stream         }       }              var constraints = {         audio:false,         video: {           optional: [             {               sourceId: videoSelect.value             }           ]         }       };              navigator.mediaDevices.getUserMedia(constraints).then(gotStream).catch(handleError);     }       function gotStream(stream) {       _streamCopy = stream; // make stream available to console       videoElement.srcObject = stream;     }       function handleError(error) {       alert(error.name + ": " + error.message);     }       //######################## End Video Source #################         // Get access to the camera!     if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {       navigator.mediaDevices.getUserMedia({ video: true }).then(function(stream) {         videoElement.src = window.URL.createObjectURL(stream);         videoElement.play();         });     } else {       document.getElementById("pnlVideo1").style.display = "none";     }         //// Trigger photo take     document.getElementById("snap").addEventListener("click",       function() {         contextPreview.drawImage(videoElement, 0, 0, 300, 224);         contextUpload.drawImage(videoElement, 0, 0, 300, 224);         document.getElementById("video").style.display = "none";         document.getElementById("snap").style.display = "none";         document.getElementById("canvasPreview").style.display = "block";           var image = document.getElementById("canvasUpload").toDataURL("image/jpeg");         image = image.replace('data:image/jpeg;base64,', '');         $("#imgValue").val(image);                  alert("image value :" + image);       });       //// Trigger photo take         document.getElementById("btnOpen1").addEventListener("click",       function() {         document.getElementById("vdoOne").style.display = "block";         document.getElementById("video").style.display = "block";         document.getElementById("snap").style.display = "block";         document.getElementById("canvasPreview").style.display = "none";       });        </script> 

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91短视频在线播放 | 精品一区二区三区在线观看视频 | 欧美一级做一级爱a做片性 久久久资源网 | 日日操日日操 | 国产91免费看 | 中文字幕欧美一区二区三区 | 久色精品 | 欧美交在线 | 国产九九热视频 | 亚洲国产精品久久久久婷婷老年 | 午夜久久电影 | 精品一区二区三区在线观看视频 | 在线成人免费视频 | jizzjizzjizzjizz国产 | 日韩精品中文字幕一区二区三区 | 精品国产91一区二区三区 | 国产精品亚洲激情 | 国产成年人在线观看 | 欧美精品一区二区三区久久久 | 国产系列 视频二区 | 成人毛片视频免费 | 成人午夜在线免费视频 | 久久久久久久久久久久久久av | 午夜爽爽爽男女免费观看hd | 黑人一级片视频 | 麻豆19禁国产青草精品 | 免费观看一级 | 黄色免费在线电影 | 亚洲精品在线观看免费 | 福利免费在线观看 | 成年毛片 | 久章草在线视频 | 日韩黄色片网站 | 欧美a黄 | av在线观 | 大学生一级毛片 | 色毛片| 色网在线视频 | 久久国产精品二国产精品中国洋人 | 欧美日韩在线视频一区 | 国产精品久久久久久久av三级 |