macOS Safari 版本 12.0 - getUserMedia 已禁用?
macOS Safari version 12.0 - getUserMedia disabled?
我使用 Modernizr.getusermedia 来测试浏览器是否支持 getUserMedia 功能。我最近发现 Modernizr.getusermedia return 在 Safari 12.0(在 Macbook 上)中是错误的。
我相当肯定,在过去,它曾经 return 对于 safari 来说是正确的。有人可以告诉我发生了什么变化以及我应该做什么吗?
我无法想象 getusermedia 实际上被禁用了。
您需要调用 navigator.mediaDevices.getUserMedia 才能在 Safari12 中使用 "getUserMedia"。所以你可以使用这样的东西:
// get "getUserMedia" function for other browsers
navigator.getUserMedia = (navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.mediaDevices) { // if navigator.mediaDevices exists, use it
navigator.mediaDevices.getUserMedia({audio: true}).then(onGetUserMedia, onGetUserMediaError);
} else {
navigator.getUserMedia({audio: true}, onGetUserMedia, onGetUserMediaError);
}
我使用 Modernizr.getusermedia 来测试浏览器是否支持 getUserMedia 功能。我最近发现 Modernizr.getusermedia return 在 Safari 12.0(在 Macbook 上)中是错误的。
我相当肯定,在过去,它曾经 return 对于 safari 来说是正确的。有人可以告诉我发生了什么变化以及我应该做什么吗?
我无法想象 getusermedia 实际上被禁用了。
您需要调用 navigator.mediaDevices.getUserMedia 才能在 Safari12 中使用 "getUserMedia"。所以你可以使用这样的东西:
// get "getUserMedia" function for other browsers
navigator.getUserMedia = (navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia);
if (navigator.mediaDevices) { // if navigator.mediaDevices exists, use it
navigator.mediaDevices.getUserMedia({audio: true}).then(onGetUserMedia, onGetUserMediaError);
} else {
navigator.getUserMedia({audio: true}, onGetUserMedia, onGetUserMediaError);
}