使用JS调用本地摄像头录制视频

最近项目中使用到了录制视频功能,为了防止以后再次使用时不记得怎么使用,简单记录一下。

function start() {
TotalTimelenth=0;
videoConstraints.deviceId = { exact: deviceId }; //根据设备ID选择使用的设备
const constraints = {
video: videoConstraints,
audio: true //声音是否开启
};
navigator.mediaDevices.getUserMedia(constraints)
.then((stream) => {
recorder = new MediaRecorder(stream);
audio.srcObject = stream;//将播放器设置为从流中获取播放
audio = (…arg) => {
console.log(arg);
}

    recorder.ondataavailable = (event) => {
        let url = URL.createObjectURL(event.data);
        blob = event.data
        console.log('blob=======',blob)
        blobToDataURL(blob,function(val){

            base64 = 'data:audio/mp4;base64,'+val.split(',')[2];
            audio.src=base64;
        })

    }
    recorder.start();
    timer = window.setInterval("TimeGo()",1000);
});
}

//遍历设备,设置当前使用设备
function gotDevices(mediaDevices) {
let count = 1;
mediaDevices.forEach(mediaDevice => {
console.log(’=mediaDevice’,mediaDevice)
if (mediaDevice.kind === ‘videoinput’&&mediaDevice.label.indexOf(‘Slave’)>-1) {
//根据mediaDevice.kind 选择设备类型,deviceId用来设置使用的设备
deviceId = mediaDevice.deviceId;
}
});
}

navigator.mediaDevices.enumerateDevices().then(gotDevices);//放到最后用来获取设备

你可能感兴趣的:(JS,js)