Extjs6调用电脑摄像头且具有录像和拍照功能
时间: 2023-05-19 20:07:33 浏览: 108
web使用js调用摄像头扫码、拍照、录像
3星 · 编辑精心推荐
可以使用HTML5的getUserMedia API来调用电脑摄像头,同时使用MediaRecorder API来实现录像功能,使用Canvas API来实现拍照功能。具体实现可以参考以下代码:
// 获取视频流
navigator.mediaDevices.getUserMedia({ video: true, audio: false })
.then(function(stream) {
var video = document.querySelector('video');
video.srcObject = stream;
video.onloadedmetadata = function(e) {
video.play();
};
// 录像
var chunks = [];
var mediaRecorder = new MediaRecorder(stream);
mediaRecorder.ondataavailable = function(e) {
chunks.push(e.data);
};
mediaRecorder.onstop = function(e) {
var blob = new Blob(chunks, { 'type' : 'video/mp4' });
var url = URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = 'video.mp4';
a.click();
chunks = [];
};
document.querySelector('#record').addEventListener('click', function() {
if (mediaRecorder.state === 'inactive') {
mediaRecorder.start();
} else {
mediaRecorder.stop();
}
});
// 拍照
var canvas = document.querySelector('canvas');
var context = canvas.getContext('2d');
document.querySelector('#capture').addEventListener('click', function() {
context.drawImage(video, 0, 0, canvas.width, canvas.height);
var url = canvas.toDataURL('image/png');
var a = document.createElement('a');
a.href = url;
a.download = 'image.png';
a.click();
});
})
.catch(function(err) {
console.log(err);
});
至于Extjs6的具体实现方式,可以参考官方文档或者相关教程。
阅读全文