【问题标题】:how to use .getusermedia() without mic?如何在没有麦克风的情况下使用 .getusermedia()?
【发布时间】:2020-11-15 09:24:01
【问题描述】:

即使我的用例不需要任何音频输入,.getusermedia() 是否总是需要麦克风权限?

有没有办法通过询问和仅使用相机来使其工作?

我正在使用下面的示例 - https://webrtc.github.io/samples/src/content/getusermedia/gum/ - 看起来音频约束是假的 - 但那是音频输入吗?

【问题讨论】:

    标签: javascript webrtc android-camera microphone getusermedia


    【解决方案1】:

    .getusermedia() 是否总是需要麦克风权限,即使我使用 机箱不需要任何音频输入?

    否(但通常会根据浏览器不断要求相机权限)。

    有没有办法通过询问和仅使用相机来使其工作?

    是的,您的链接为此提供了代码。通过设置 audio: false 表示不寻求 Mic 权限,不接收音频,不输出音频。它将使用默认摄像头并仅提供视频。

    如果您将视频翻转为 false 并将音频翻转为 true,则 chrome 仅要求您提供麦克风权限。但是,根据浏览器,您将被要求为第一个会话或每个会话提供相机权限。

    我正在使用下面的示例 - https://webrtc.github.io/samples/src/content/getusermedia/gum/ - 它 看起来音频约束是错误的 - 但那是音频输入吗?

    audio:true 将使用您设备上的默认音频输入和输出,您可以通过 deviceId 指定其他来源(视频、音频输入和音频输出)。通过使用您发布的音频设置为 false 的示例代码,您只是在寻求相机权限。如果您将其设置为 true,它将使用默认音频输入(通常与相机相同的设备)和输出(扬声器)。

    令人困惑的是权限弹出。如果您只寻找音频,它会询问“website_name 想要使用您的麦克风”。如果您只寻找相机,它会询问“website_name 想要使用您的相机”,如果您寻找视频和音频,则会询问相同的消息。

    您可以通过在此处阻止 chrome 中的麦克风权限来测试这一点: chrome://settings/content/siteDetails?site=https%3A%2F%2Fwebrtc.github.io%3A443https://webrtc.github.io/samples/src/content/getusermedia/gum/

    或者在 android 上进入设置 -> 站点设置 -> 麦克风 -> 阻止

    使用您提供的链接(带有音频:false),当我手动阻止 Chrome macOS、Windows 10 和 Android 上的麦克风访问时,它仍然有效。通常在第一次运行时,它只在 chrome 上请求一次相机权限。

    【讨论】:

      【解决方案2】:

      getUserMedia 中传递视频和音频参数。分别设置为truefalse 允许或不允许。

      navigator.mediaDevices.getUserMedia({
        audio: false,
        video: true
      })
      

      【讨论】:

        猜你喜欢
        • 2013-03-22
        • 2013-11-18
        • 1970-01-01
        • 2015-10-16
        • 2013-07-18
        • 2017-10-26
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        相关资源
        最近更新 更多