h5页面如何调用摄像头实现录像功能
dearweb 发布:2023-03-21 09:13:18阅读:H5页面调用摄像头实现录像功能同样可以使用HTML5的API。下面是一个简单的例子。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>调用摄像头录像</title> </head> <body> <video id="video" width="640" height="480" autoplay></video> <button id="startRecord">开始录制</button> <button id="stopRecord">停止录制</button> <script> var video = document.querySelector("#video"); var startRecord = document.querySelector("#startRecord"); var stopRecord = document.querySelector("#stopRecord"); var mediaRecorder; var chunks = []; navigator.mediaDevices.getUserMedia({audio: true, video: true}) .then(function(stream) { video.srcObject = stream; mediaRecorder = new MediaRecorder(stream); mediaRecorder.ondataavailable = function(e) { chunks.push(e.data); }; mediaRecorder.onstop = function(e) { var blob = new Blob(chunks, { 'type' : 'video/mp4' }); chunks = []; var videoURL = window.URL.createObjectURL(blob); video.src = videoURL; }; }); startRecord.onclick = function() { mediaRecorder.start(); }; stopRecord.onclick = function() { mediaRecorder.stop(); }; </script> </body> </html>
在这个例子中,我们使用了`<video>`标签来显示摄像头的视频流,同时添加了两个按钮`开始录制`和`停止录制`。当用户点击`开始录制`按钮时,我们创建了一个`MediaRecorder`对象来录制视频流,并将录制的数据存储到`chunks`数组中。当用户点击`停止录制`按钮时,我们停止录制,并将`chunks`数组中的数据合并成一个`Blob`对象,然后使用`window.URL.createObjectURL()`方法将`Blob`对象转换成一个URL,最后将这个URL设置为`<video>`标签的`src`属性,从而实现了录制和播放视频的功能。
需要注意的是,不同的移动设备和浏览器对HTML5的API支持程度不同,有些设备可能无法调用摄像头或相机。同时,为了保护用户隐私,浏览器也有一些限制,比如在HTTPS协议下才能调用摄像头和相机。
小礼物走一波,支持作者
赏还没有人赞赏,支持一波吧