什么是TrackStartError?

时间:2017-05-11 15:23:50

标签: javascript audio webrtc getusermedia

我正在使用约束运行仅音频会话:

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

我注意到在极少数会话中,我从getUserMedia请求收到TrackStartError。我看不到可用的浏览器/浏览器版本/ OS /设备之间的任何关联。有些计算机不断出现此错误,有些曾经一次,然后在新的getUserMedia请求之后没有问题,有些计算机根本没有遇到此问题。

TrackStartError是否完整记录,因为我已经看到围绕强制音频标志的一些问题,但echoCancellation似乎没有这个问题?

1 个答案:

答案 0 :(得分:10)

TrackStartErrornon-spec Chrome-specificNotReadableError版本:

  

虽然用户已授予使用匹配设备的权限,但操作系统,浏览器或网页级别发生硬件错误,导致无法访问设备。

似乎适合,因为你的约束也是non-spec and Chrome-specific。相反,尝试:

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

我强烈推荐官方adapter.js polyfill到deal with such browser differences

某些系统(如Windows)提供对硬件设备的独占访问权限,如果其他应用程序当前正在使用麦克风或相机,则可能会导致此错误。它也可能是错误或驱动程序问题。