Web 音频 api 5.1 环绕声示例在 Firefox 中不起作用

Web audio api 5.1 surround example not working in firefox

我最近在 Firefox 和 Chrome 上经常使用 Web Audio Api。几天前,我开始尝试使用环绕声。当我在网络音频 api 中尝试环绕音频时,我注意到我的示例在 Chrome v59 中运行良好,但在 Firefox v54 中运行不正常。

// create web audio api context
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
audioCtx.destination.channelInterpretation = 'discrete';
audioCtx.destination.channelCountMode = 'explicit';
audioCtx.destination.channelCount = 6;


var oscillators = [];

var merger = audioCtx.createChannelMerger(6);

console.log(audioCtx.destination, merger);
//merger.channelInterpretation = 'discrete';
//merger.channelCountMode = 'explicit';
//merger.channelCount = 6;

var addOscilator = function(channel, frequency) {
    var oscillator = audioCtx.createOscillator();

    oscillator.frequency.value = frequency; // value in hertz
    oscillator.connect(merger,0,channel);
    oscillator.start();

    oscillators.push(oscillator);
};

addOscilator(0,300);
addOscilator(1,500);
addOscilator(2,700);
addOscilator(3,900);
addOscilator(4,1100);
addOscilator(5,1300);

merger.connect(audioCtx.destination);

当我对音频上下文目标执行控制台日志时,maxChannelCount 是 6,channelCount 也是 6,但我仍然只在左右声道上获得输出。这些通道播放所有输出。 (所以它从 5.1 缩混到立体声)

我还尝试在 firefox 的 html-audio 元素中播放 5.1 环绕声音频文件,效果很好。换句话说,浏览器正在识别并能够输出环绕集。

我在这个例子中做错了什么,或者这是 firefox 尚未实现的功能(因为网络音频 api 仍然是草稿)?我找不到任何这样的报告,所以我认为这是我的错,但浏览器之间的不一致让我怀疑。

提前致谢

经过更深入的研究,结果证明这是 firefox v54 中的一个错误。

https://bugzilla.mozilla.org/show_bug.cgi?id=1378070

通道将被处理,但最终混合为立体声。 Mozilla 在撰写本文时正在修复。

在 firefox v57 中标记为已解决。