Javascript navigator.getUserMedia不适用于safari,但适用于其他浏览器
在我的应用程序中,我的一个xhtml页面正在访问摄像头,因为我已经创建了一个脚本,脚本如下Javascript navigator.getUserMedia不适用于safari,但适用于其他浏览器,javascript,Javascript,在我的应用程序中,我的一个xhtml页面正在访问摄像头,因为我已经创建了一个脚本,脚本如下 function getCamera() { navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix navigator.webkitGetUserMedia || navigator.mozGetUserMedia || na
function getCamera() {
navigator.getMedia = ( navigator.getUserMedia || // use the proper vendor prefix
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
navigator.getMedia({video: true}, function() {
console.log("webcam is available ");
document.getElementById('camera-image').style.display='';
document.getElementById('no-image').style.display='none';
}, function() {
console.log("webcam is not available ");
document.getElementById('camera-image').style.display='none';
document.getElementById('no-image').style.display='';
});
}
该脚本在chrome、firefox和opera上运行良好,但在safari上不起作用
有人能帮我吗?根据MDN文档,已弃用,Safari浏览器不支持。
您可以看到取自MDN文档的兼容性表。
相反,您可以使用更好地支持不同浏览器的。
试试这个代码。希望这能对你有所帮助
function getCamera() {
if (!navigator.mediaDevices && !navigator.mediaDevices.getUserMedia) {
navigator.userMedia = navigator.mozGetUserMedia || navigator.getUserMedia
if (!navigator.userMedia) {
alert("Please Update or Use Different Browser");
return
}
navigator.userMedia({
video: true
}, (stream) => showCam(stream), (err) => showErr(err))
return
}
navigator.mediaDevices.getUserMedia({
video: true
})
.then((stream) => showCam(stream))
.catch((err) => showErr(err))
function showCam(stream) {
let video = document.querySelector("video");
video.srcObject = stream;
}
function showErr(err) {
let message = err.name === "NotFoundError" ? "Please Attach Camera" :
err.name === "NotAllowedError" ? "Please Grant Permission to Access Camera" : err
alert(message)
}
}
. 不赞成