我正在使用约束运行仅音频会话:
var constraints = {
audio: {
mandatory: {
echoCancellation: false
}, optional: [{
sourceId: audioSource
}]
},
video: false
};
我注意到在很少的会话中,我从getUserMedia请求中收到TrackStartError.我看不到浏览器/浏览器版本/ OS /设备之间的任何关联.一些计算机不断出现此错误,有的计算机一次又一次出现新的getUserMedia请求没有问题,而有些根本没有遇到此错误.
我已经看到了有关强制性音频标志的一些问题,是否完整记录了TrackStartError,但是echoCancellation似乎没有此问题?
解决方法:
TrackStartError是NotReadableError
的non-spec Chrome-specific版本:
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.
鉴于您的约束也为non-spec and Chrome-specific,这似乎很合适.相反,请尝试:
var constraints = {
audio: {
echoCancellation: { exact: false },
deviceId: audioSource
},
};
我强烈建议将官方的adapter.js polyfill填充到deal with such browser differences.
某些系统(例如Windows)提供对硬件设备的独占访问权,如果其他应用程序当前正在使用麦克风或摄像头,则可能导致此错误.也可能是错误或驱动程序问题.