javascript - getUserMedia 不适用于新浏览器

标签 javascript html google-chrome internet-explorer microsoft-edge

我正在使用 HTML 媒体捕获和 getUserMedia 方法。它不适用于 Chrome,我收到失败时的警报。

这是我使用的示例代码:

if (navigator.getUserMedia) {
    navigator.getUserMedia(
        // constraints
        {
            video: true,
            audio: true
        },
        // successCallback
        function (localMediaStream) {
            var video = document.querySelector('video');
            video.src = window.URL.createObjectURL(localMediaStream);
            // Do something with the video
            video.play();
        },
        // errorCallback
        function (err) {
            console.log("The following error occured: " + err);
        }
    );
} else {
    alert("getUserMedia not supported by your web browser or Operating system version");
}

最佳答案

Chrome 无法识别标准的 navigator.getUserMedia。它适用于 Microsoft Edge。您将需要添加 vendor 前缀。 对于 Chrome:navigator.webkitGetUserMedia

这是 JSFiddle 上的工作代码 https://jsfiddle.net/RamiSarieddine/t9d3hpyr/

//browser support check "ms" vendor function is for IE8
navigator.getUserMedia = ( navigator.getUserMedia       ||
                           navigator.webkitGetUserMedia ||
                           navigator.mozGetUserMedia    ||
                           navigator.msGetUserMedia );

if (navigator.getUserMedia) {
    navigator.getUserMedia(
        // constraints
        {
            video: true,
            audio: true
        },
        // successCallback
        function (localMediaStream) {
            var video = document.querySelector('video');
            video.src = window.URL.createObjectURL(localMediaStream);
            // Do something with the video
            video.play();
        },
        // errorCallback
        function (err) {
            console.log("The following error occured: " + err);
        }
    );
} else {
    alert("getUserMedia not supported by your web browser or Operating system version");
}

关于javascript - getUserMedia 不适用于新浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33985806/

相关文章:

javascript - HTML5 中数字的自定义验证 CVC CVV

google-chrome - 为什么我的调试器在视觉上停在错误的行?

google-chrome - 如何在我的网站中从 Google 启用此凭据选择器?

javascript - Jquery 将切换与关闭按钮结合起来

javascript - TypeScript:我可以混合使用 "import * from"和 "require(*)"

html - 如何从细节元素中删除元素符号?

html - 使 <h1> 标签具有相同的最大宽度,无论其中的文本大小写如何

javascript - 如何更改滚动条上的导航栏 css 样式?

javascript - 使用 JavaScript 简写形式连接复数或单数术语的字符串

javascript - 将图像复制到剪贴板在 Firefox 和 Chrome 中不起作用