首页 / HTML / H5的video标签操作摄像头
H5的video标签操作摄像头
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了H5的video标签操作摄像头,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4026字,纯文字阅读大概需要6分钟。
内容图文
![H5的video标签操作摄像头](/upload/InfoBanner/zyjiaocheng/392/4bbd955ac8b04c7a85afdfffc73bb2dd.jpg)
这次给大家带来H5的video标签操作摄像头,H5的video标签操作摄像头注意事项有哪些,下面就是实战案例,一起来看一下。
详解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> <p 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> </p>
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>
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
django控件及传参使用详解
jquery实现全选反选单选
jQuery插件FusionCharts绘制饼状图
以上就是H5的video标签操作摄像头的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的H5的video标签操作摄像头全部内容,希望文章能够帮你解决H5的video标签操作摄像头所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。