0

我最近在 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 仍然是草稿)?我找不到任何这样的报告,所以我认为这是我的错,但是浏览器之间的不一致让我怀疑。

提前致谢

4

1 回答 1

0

经过一些更深入的研究,它原来是 Firefox v54 中的一个错误。

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

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

在 Firefox v57 中标记为已解决。

于 2017-08-09T10:26:16.290 回答