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);
    }