【问题标题】:detecting support for getUserMedia on Android browser fails在 Android 浏览器上检测对 getUserMedia 的支持失败
【发布时间】:2013-08-21 12:55:48
【问题描述】:

检测到对 getUserMedia 的支持时遇到问题。 我使用的是 Android 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”

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

【问题讨论】:

    标签: javascript webrtc getusermedia


    【解决方案1】:

    Android 浏览器不支持 GetUseMedia。

    http://caniuse.com/stream

    getUserMedia(constraints, successCallBack, errorCallBack)

    在 errorCallBack 中,检查您遇到的错误。您应该每次都得到确切的原因。

    【讨论】:

      【解决方案2】:

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

      1. 正确的用户权限
      2. 用户对所述权限弹出窗口单击“是”
      3. ChromeWebView 是在上述操作之后实例化的
      4. ChromeWebView onPermissionRequest 已被覆盖以允许摄像头访问

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

      请参阅以下内容了解更多信息: NotReadableError: Could not start source

      【讨论】:

        猜你喜欢
        • 2012-02-02
        • 2010-10-10
        • 2014-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-13
        • 2010-12-11
        • 2012-07-19
        相关资源
        最近更新 更多