Подтвердить что ты не робот

Можно ли выводить более 8 каналов с помощью Web Audio API?

Я экспериментирую с API Web Audio для управления воспроизведением интерактивной музыки в многоканальной настройке. До сих пор мне удалось направить звук до 8 осцилляторов на 8 разных каналов на 12-канальной звуковой карте, но как только я попытаюсь использовать более 8 каналов, внезапно все каналы будут отключены. После многих исследований я также заметил, что audioContext.currentTime застрял на значении около нуля.

Это мой результат от MAC OSX 10.8.5 Google Chrome Версия 39.0.2171.27 beta (64-разрядная версия) и версия 40.0.2192.0 канарейка (64-разрядная версия).

Safari не позволяет мне адресовать более двух каналов FireFox находит мои 12 каналов с помощью audioContext.destination.maxChannelCount, но продолжает маршрутизацию моего звука на каналы 1 и 2 независимо от того, пытаюсь ли я подключить генератор к более высокому номеру с помощью gain.connect(channelMerger, 0, i).

Кто-нибудь сталкивался с чем-то похожим? Есть ли обходные пути?

Вот код:

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);
}
4b9b3361

Ответ 1

Мы не реализовали многоканальную поддержку в Firefox. Он был приоритетным и произойдет в какой-то момент в следующих двух кварталах, а затем будет выпущен вскоре после этого.