DOMException:无法启动音频源

时间:2020-11-07 14:59:58

标签: webspeech-api

我正在编写一个React App,并且我使用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*/
  });

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

Failed: DOMException: Could not start audio source

该网站问我是否要允许使用麦克风,当我进入站点设置时,它说麦克风和声音都被允许,这使我相信我在用户交互方面做得很好。 该网站通过HTTPS提供服务(已经解决了该问题),所以我认为这也不是问题。

在此测试中,我将小米Mi 9与Chrome Chrome 86.0.4240.185结合使用。

我的第一个直觉是我在这里做错了什么?如果是这样,该怎么办? 否则,我该怎么做才能解决此问题?

1 个答案:

答案 0 :(得分:0)

检查您的Android应用是否具有必需的权限:

int taskLimit = 500;
int maxConcurrent = 5;

IObservable<Unit> query =
    Observable
        .Range(0, taskLimit)
        .Select(x => Observable.FromAsync(ct => SomeHeavyTask(ct)))
        .Merge(maxConcurrent);
        
await query;