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