DOMException:无法启动音频源

NMi*_*lev 1 webspeech-api

我正在编写一个 React 应用程序,并使用Web Speech API进行语音和语音识别。我编写了一些适用于桌面 Chrome 的代码。我向用户请求许可的方式如下:

 navigator.mediaDevices
  .getUserMedia({ audio: true })
  .then(function (stream) {
        console.log('Succeeded');
        /*Handle success*/
  })
  .catch(function (err) {
        console.log('Failed: ', err)
        /*Handle failure*/
  });
Run Code Online (Sandbox Code Playgroud)

但是,当从我的 Android 手机使用时,相同的代码始终会转到 catch 回调,并将以下内容写入控制台:

Failed: DOMException: Could not start audio source
Run Code Online (Sandbox Code Playgroud)

该网站询问我是否允许使用麦克风,当我进入网站设置时,它说允许使用麦克风和声音,这让我相信我已经很好地完成了用户交互部分。该网站通过 HTTPS 提供服务(已经解决了该问题),因此我相信这也不是问题。

本次测试中我使用的是小米 9 和 Chrome Chrome 86.0.4240.185。

我的第一直觉是我在这里做错了什么?如果是这样的话,怎么办?否则,我可以做什么来解决这个问题?

pwk*_*wkc 6

检查您的 Android 应用程序是否具有所需的权限:

android.permission.RECORD_AUDIO
android.permission.MODIFY_AUDIO_SETTINGS (might be optional)
Run Code Online (Sandbox Code Playgroud)