我正在尝试访问连接的多输入音频接口的所有音频通道。我知道MediaStreamAudioSourceNode节点在使用MediaStream创建后,应该通道:
navigator.getUserMedia({ audio: true }, function(stream) {
var input = audio.createMediaStreamSource(stream);
console.log(input.channelCount);
});
问题是input.channelCount始终为2,无论选择哪个设备作为用户媒体源。这适用于Chrome和FireFox。
Media Capture和Streams规范声明:
单个MediaStreamTrack可以表示多通道内容,例如 立体声或5.1音频或立体视频,其中频道有 明确的彼此关系。有关频道的信息 可能会通过其他API公开,例如[WEBAUDIO],但是这个 规范不提供对频道的直接访问。
(http://w3c.github.io/mediacapture-main/getusermedia.html#introduction)
这表明无法通过getUserMedia调用影响通道数量(除非我缺少一些特殊的约束参数)。
MediaStreamAudioSourceNode的WebAudio规范声明:
来自MediaStream的第一个AudioMediaStreamTrack将用作 音频来源。 [...]输出的通道数 对应于AudioMediaStreamTrack的通道数。
(http://webaudio.github.io/web-audio-api/#MediaStreamAudioSourceNode)
当我检查getUserMedia创建的流时,它只有一个轨道。据我所知,无法检查该轨道的通道数量。所以似乎要么:
getUserMedia仅将连接设备的前两个音频频道流式传输到单个MediaStreamTrack。
MediaStreamAudioSourceNode忽略了MediaStreamTrack中找到的前两个频道。
有没有人有关于此问题的更多信息?我错过了什么吗?它没有正确实施吗?我们怎样才能解决这个问题?
答案 0 :(得分:3)
Chrome目前还不支持此功能。已知问题。洪婵一直在看它。