【问题标题】:Is it possible to output more than 8 channels with Web Audio API?是否可以使用 Web Audio API 输出超过 8 个通道?
【发布时间】:2014-12-13 13:56:46
【问题描述】:

我正在尝试使用 Web Audio API 来控制多声道设置中交互式音乐的播放。到目前为止,我已经成功地将多达 8 个振荡器的声音引导到 12 通道声卡上的 8 个不同通道,但是当我尝试使用超过 8 个通道时,突然所有通道都静音了。经过大量研究后,我还注意到audioContext.currentTime 卡在接近零的值上。

这是我从 MAC OSX 10.8.5 得到的结果 Google Chrome 版本 39.0.2171.27 测试版(64 位) 和版本 40.0.2192.0 canary(64 位)。

Safari 不允许我处理超过 2 个频道 FireFox 使用 audioContext.destination.maxChannelCount 找到了我的 12 个通道,但无论我是否尝试使用 gain.connect(channelMerger, 0, i) 将振荡器连接到更高的数字,我都会继续将我的声音路由到通道 1 和 2。

有没有人遇到过类似的事情?有解决办法吗?

代码如下:

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
var maxChannelCount = audioContext.destination.maxChannelCount;

// if set to max 8 it works fine in Chrome, but this line
// breaks the audio if the sound card has got more than 8 channels
audioContext.destination.channelCount = maxChannelCount; 
audioContext.destination.channelCountMode = "explicit";
audioContext.destination.channelInterpretation = "discrete";

var channelMerger = audioContext.createChannelMerger(maxChannelCount);
channelMerger.channelCount = 1;
channelMerger.channelCountMode = "explicit";
channelMerger.channelInterpretation = "discrete";
channelMerger.connect(audioContext.destination);

for(var i = 0; i < maxChannelCount; i++){
    var oscillator = audioContext.createOscillator();
    oscillator.connect(channelMerger, 0, i);
    oscillator.start(0);
}

【问题讨论】:

标签: macos audio web-audio-api


【解决方案1】:

我们尚未在 Firefox 中实现多渠道支持。它已被优先考虑,并将在接下来的两个季度的某个时间点发生,然后在不久之后发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-24
    • 2016-04-09
    • 2011-12-02
    • 1970-01-01
    • 2013-09-25
    • 2014-08-17
    • 2017-11-27
    • 2012-04-18
    相关资源
    最近更新 更多