2

检测到对 getUserMedia 的支持时出现问题。我使用的是安卓 4.2.2。

问题是android浏览器的行为好像它支持getUserMedia但是在使用它时,我既没有调用成功函数也没有调用失败函数。下面的代码:

    function onCameraFail(e){
        alert("Failed getting media");
    }

    if (navigator.webkitGetUserMedia) {
            alert("getMedia supported");
            navigator.webkitGetUserMedia({video:true}, function (stream) {
                alert("Got media");
            }, onCameraFail);
            alert("after getMedia");
    }else{  
        //Old device, no support for providing a photo
        alert("No support for getUserMedia");           
    }

在 Android 浏览器上,此代码显示弹出窗口“getUserMedia supported”,但我从未收到任何弹出窗口显示“获取媒体”或“获取媒体失败”。在 Android 上的 Chrome 中运行相同的代码时,它显示“不支持 getUserMedia”

为什么会有这种行为?我认为这是检查功能支持的常用方法。

4

2 回答 2

0

GetUseMedia is not supported in Android Browsers.

http://caniuse.com/stream

getUserMedia(constraints, successCallBack, errorCallBack)

In errorCallBack, check for the error you are getting. You should get the exact reason every time.

于 2014-03-13T11:18:42.763 回答
0

WebRTC 功能在 Android 上可用。这取决于应用程序是否具有:

  1. 正确的用户权限
  2. 用户已单击“是”来表示权限弹出窗口
  3. ChromeWebView 是在上述之后实例化的
  4. ChromeWebView onPermissionRequest 已被覆盖以允许相机访问

您应该在 JavaScript 中获得相应的错误消息(调用 getUserMedia 时)以了解失败的位置,例如 NotReadableError 突出显示权限/无法启动视频源。始终使用适配器获取一致的错误消息:https ://webrtc.github.io/adapter/adapter-latest.js

有关详细信息,请参阅以下内容: NotReadableError: 无法启动源

于 2019-09-15T06:47:17.723 回答