什么是 TrackStartError?

What is a TrackStartError?

我是 运行 使用约束的纯音频会话:

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

我注意到在极少数会话中,我从 getUserMedia 请求中收到了 TrackStartError。我看不到 browser/browser version/OS/devices 之间有任何关联。有些计算机会不断出现此错误,有些会出现一次,然后在新的 getUserMedia 请求后就没问题,而有些则根本不会遇到此错误。

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

TrackStartError 是一个 non-spec Chrome-specific version of NotReadableError:

Although the user granted permission to use the matching devices, a hardware error occurred at the operating system, browser, or Web page level which prevented access to the device.

似乎很合适,因为您的约束条件也是 。相反,尝试:

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

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

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