从以下链接运行 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
可以在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)才能正常工作。
请使用这个:
navigator.mediaDevices
.getUserMedia(constraints)
.then((stream) => {
/* use the stream */
})
.catch((err) => {
/* handle the error */
});
取而代之的是简单地获取用户媒体