WebRTC 不可用

问题描述 投票:0回答:2

从以下链接运行 js-objectdetect 示例:

http://mtschirs.github.io/js-objectdetect/examples/example_sunglasses.htm

但是在运行时它会显示警告“WebRTC 不可用”

尝试从 chrome://flags/ 启用 WebRTC 并运行以下命令:

chrome.exe --enable-logging --vmodule=*/webrtc/*=2,*/libjingle/*=2,*=-2 --no-sandbox
javascript google-chrome webrtc object-detection
2个回答
1
投票

可以在compatibility.js中找到相关代码

    getUserMedia = function(options, success, error) {
        var getUserMedia =
            window.navigator.getUserMedia ||
            window.navigator.mozGetUserMedia ||
            window.navigator.webkitGetUserMedia ||
            function(options, success, error) {
                error();
            };

        return getUserMedia.call(window.navigator, options, success, error);
    };

然后在HTML中,可以找到如下代码:

        compatibility.getUserMedia({video: true}, function(stream) {
            try {
                video.src = compatibility.URL.createObjectURL(stream);
            } catch (error) {
                video.src = stream;
            }
            compatibility.requestAnimationFrame(play);
        }, function (error) {
            alert('WebRTC not available');
        });

如果您在当前版本的 Chrome 中运行该页面,您将收到以下警告:

[弃用] getUserMedia() 不再适用于不安全的来源。要使用此功能,您应该考虑将您的应用程序切换到安全来源,例如 HTTPS。有关详细信息,请参阅https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins

换句话说,您需要使用 https://mtschirs.github.io/js-objectdetect/examples/example_sunglasses.htm(注意 https)才能正常工作。


0
投票

请使用这个:

    navigator.mediaDevices
  .getUserMedia(constraints)
  .then((stream) => {
    /* use the stream */
  })
  .catch((err) => {
    /* handle the error */
  });

取而代之的是简单地获取用户媒体

© www.soinside.com 2019 - 2024. All rights reserved.