我正在使用约束运行仅音频会话:
var constraints = {
audio: {
mandatory: {
echoCancellation: false
}, optional: [{
sourceId: audioSource
}]
},
video: false
};
我注意到在极少数会话中,我从getUserMedia请求收到TrackStartError。我看不到可用的浏览器/浏览器版本/ OS /设备之间的任何关联。有些计算机不断出现此错误,有些曾经一次,然后在新的getUserMedia请求之后没有问题,有些计算机根本没有遇到此问题。
TrackStartError是否完整记录,因为我已经看到围绕强制音频标志的一些问题,但echoCancellation似乎没有这个问题?
答案 0 :(得分:10)
TrackStartError
是non-spec Chrome-specific的NotReadableError
版本:
虽然用户已授予使用匹配设备的权限,但操作系统,浏览器或网页级别发生硬件错误,导致无法访问设备。
似乎适合,因为你的约束也是non-spec and Chrome-specific。相反,尝试:
var constraints = {
audio: {
echoCancellation: { exact: false },
deviceId: audioSource
},
};
我强烈推荐官方adapter.js polyfill到deal with such browser differences。
某些系统(如Windows)提供对硬件设备的独占访问权限,如果其他应用程序当前正在使用麦克风或相机,则可能会导致此错误。它也可能是错误或驱动程序问题。