繁体   English   中英

iOS getUserMedia 的 Bowser 未定义

[英]Bowser for iOS getUserMedia is undefined

我试图让 WebRTC 与 iOS 的Bowser浏览器一起工作。但无论我尝试navigator.getUserMedia是未定义的。

我正在运行 iOS 8.3 的 iPhone6 上测试该页面。

这就是我的设置方式:

var localMediaStream;

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

window.onload = function() {
    var video = document.getElementById('video');

    navigator.getUserMedia({video: true}, function(stream) {
        video.src = window.URL.createObjectURL(stream);

        localMediaStream = stream;
    }, function(err) {
        if(err) throw err;
    });
};

我得到的错误是:

TypeError: undefined is not a function (evaluating 'navigator.getUserMedia')

如果我不进行功能检测并直接使用navigator.webkitGetUserMedia (据我所知,这是 Bower 中应该存在的方法),我会得到同样的错误。

做这个

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

内部加载

但是对我来说,第一次打开页面时它不起作用。 页面刷新后就可以了。

UPD:这是因为 Bowser 的 javascript 注入太晚(或根本没有注入)。 这是一个 iOs 的 webview 问题。 但是 bowser 的团队说他们已经用新的控件而不是 Web 视图替换了它,而是用较新的控件(不记得名字,抱歉)。

navigator.mediaDevices.getUserMedia(..)

Safari 11 及更高版本应得到全面支持。 它只能从 SSL 域访问,因此如果在本地开发,请尝试将https://前缀添加到您的别名。 https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM