使用WebAudio API访问音频接口的所有输入通道?

时间:2015-02-09 16:10:47

标签: javascript audio web-audio

我正在尝试访问连接的多输入音频接口的所有音频通道。我知道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创建的流时,它只有一个轨道。据我所知,无法检查该轨道的通道数量。所以似乎要么:

  1. getUserMedia仅将连接设备的前两个音频频道流式传输到单个MediaStreamTrack。

  2. MediaStreamAudioSourceNode忽略了MediaStreamTrack中找到的前两个频道。

  3. 有没有人有关于此问题的更多信息?我错过了什么吗?它没有正确实施吗?我们怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:3)

Chrome目前还不支持此功能。已知问题。洪婵一直在看它。