第161天 HTML5如何调用摄像头?
嘿,这个我知道。
window.navigator.getUserMedia()
然后接收三个参数,第一个是视频或者音频以及分辨率{video:true}
第二个是成功回调,第三个是失败回调。
还有一种调用
window.navigator.mediaDevices.getUserMedia()
也是三个参数,参数格式和上文一样,区别在于这个api是基于promise实现的。
后者是前者的新版本,设备支持率都很差
var constraints = {
video: true,
audio: false
};
var media = navigator.getUserMedia(constraints, function (stream) {
var v = document.getElementById('v');
var url = window.URL || window.webkitURL;
v.src = url ? url.createObjectURL(stream) : stream;
v.play();
}, function (error) {
console.log("ERROR");
console.log(error);
});
const constraints = {
video: true,
audio: false
};
let promise = navigator.mediaDevices.getUserMedia(constraints);
promise.then(stream => {
let v = document.getElementById('v');
// 旧的浏览器可能没有srcObject
if ("srcObject" in v) {
v.srcObject = stream;
} else {
// 防止再新的浏览器里使用它,应为它已经不再支持了
v.src = window.URL.createObjectURL(stream);
}
v.onloadedmetadata = function (e) {
v.play();
};
}).catch(err => {
console.error(err.name + ": " + err.message);
})
请问PC端和移动端只有这两个吗?没搜到其它的
Most helpful comment
嘿,这个我知道。
window.navigator.getUserMedia()
然后接收三个参数,第一个是视频或者音频以及分辨率{video:true}
第二个是成功回调,第三个是失败回调。
还有一种调用
window.navigator.mediaDevices.getUserMedia()
也是三个参数,参数格式和上文一样,区别在于这个api是基于promise实现的。