如果移动浏览器不支持 getUserMedia() 警报

getUserMedia() alert if not supported on mobile browser

我有一个网页要求使用麦克风。我知道 getUserMedia() 对移动浏览器的支持很少或根本不支持,但我正试图找出一种方法让观众知道他们需要在受支持的浏览器上访问该网站。我尽量不使用屏幕大小的媒体查询来支持我慢慢进来。

var onSuccess = function (stream) {
    alert('success');
};


navigator.getUserMedia = ( navigator.getUserMedia ||
                       navigator.webkitGetUserMedia ||
                       navigator.mozGetUserMedia ||
                       navigator.msGetUserMedia);
var constraints = { 
    video: false,
    audio: true
};
if (navigator.getUserMedia) {
    navigator.getUserMedia (
    constraints,
    onSuccess,
    function (error) {
        alert("Error: you need to allow access to use the microphone.",error)
    });
};

这很奇怪,因为页面加载正常,好像 getUserMedia() 可用但没有弹出 "allow access" 消息?

如果没有 getUserMedia,您应该需要提醒:

var onSuccess = function(stream) {
    alert('Success!');
}

var onError = function(error) {
    alert('Error :(');
}

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||
navigator.msGetUserMedia;

if (navigator.getUserMedia) {
    navigator.getUserMedia({ video: false, audio: true }, onSuccess, onError);
} else {
    onError();
}

也看看MediaDevices.getUserMedia