什么是TrackStartError?

6

我正在使用以下限制条件运行仅音频会话:

  var constraints = {
    audio: {
      mandatory: {
        echoCancellation: false
      }, optional: [{
        sourceId: audioSource
      }]
    },
    video: false
  };

我注意到在极少数会话中,我从getUserMedia请求中收到了TrackStartError。 我无法看到浏览器/浏览器版本/操作系统/可用设备之间的任何相关性。 有些计算机不断出现此错误,有些只出现一次,然后在新的getUserMedia请求后就没有问题,有些则完全没有遇到此问题。
TrackStartError是否有完整的文档记录? 我已经看到了一些关于强制音频标志的问题,但似乎echoCancellation没有这个问题?
1个回答

10

TrackStartError非标准的Chrome特有版本的NotReadableError:

尽管用户已授权使用匹配设备,但由于操作系统、浏览器或网页级别的硬件错误,无法访问该设备。

鉴于您的限制也是非标准的和Chrome特有的,这似乎很合适。请尝试:

  var constraints = {
    audio: {
      echoCancellation: { exact: false },
      deviceId: audioSource
    },
  };

我强烈推荐使用官方adapter.js polyfill来处理浏览器之间的差异
有些系统(比如Windows)会给硬件设备提供独占访问,如果其他应用程序正在使用麦克风或摄像头,则可能会导致此错误。这也可能是一个错误或驱动程序问题。

当网络摄像头已被其他应用程序使用时,Windows上的Chrome会抛出“TrackStartError”,但Chrome选项卡可以共享同一网络摄像头。即使另一个FFox选项卡正在使用网络摄像头,Firefox也会抛出“NotReadableError”。在macOS上,Firefox也会抛出此错误。 - octavn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接