ext js6调用电脑摄像头录像且保存录像的例子
时间: 2023-09-19 17:10:13 浏览: 87
Ext JS 6 By Example (英文版)(中文版稍后上传)
由于Ext JS是一个前端框架,它不能直接访问电脑的硬件,包括摄像头。要实现调用电脑摄像头录像并保存录像,需要使用其他技术,如HTML5的MediaDevices API和WebRTC。
以下是一个使用WebRTC和HTML5的示例代码,它使用getUserMedia方法获取用户的摄像头视频流,并使用MediaRecorder API录制视频,并将其保存到本地计算机:
```javascript
Ext.define('MyApp.view.Main', {
extend: 'Ext.panel.Panel',
xtype: 'main',
items: [{
xtype: 'button',
text: 'Start recording',
handler: function() {
var constraints = { video: true, audio: true };
navigator.mediaDevices.getUserMedia(constraints)
.then(function(mediaStream) {
var video = document.createElement('video');
video.srcObject = mediaStream;
video.play();
var mediaRecorder = new MediaRecorder(mediaStream);
var chunks = [];
mediaRecorder.ondataavailable = function(e) {
chunks.push(e.data);
}
mediaRecorder.onstop = function(e) {
var blob = new Blob(chunks, { 'type' : 'video/mp4' });
var url = window.URL.createObjectURL(blob);
var a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = 'video.mp4';
document.body.appendChild(a);
a.click();
window.URL.revokeObjectURL(url);
}
mediaRecorder.start();
})
.catch(function(error) {
console.log(error);
});
}
}]
});
```
该代码创建了一个包含一个按钮的面板。当用户单击按钮时,它将调用getUserMedia方法以获取用户的视频和音频流。然后,它创建一个video元素并将视频流附加到该元素。接下来,它使用MediaRecorder API来录制视频并将其存储在本地计算机上。最后,它使用HTML5的a元素来下载录制的视频文件。
阅读全文