2015-09-26 4 views
2

Я пытающегося играть только аудио в моих тыловых каналов, но похоже, в любое время подключиться к определенному каналу он играет другие, как хорошоРазделительный каналы с Web Audio API

Мои настройки и audioContext конфигурируются назначения изготовленное на 4 канала

var merger = context.createChannelMerger(4); 
audio.connect(merger, 0, 2); 
audio.connect(merger, 0, 3); 
merger.connect(context.destination); 

мой звук стерео (но я только заботиться о один канал), поэтому я также пытался разделив его первый

var merger = context.createChannelMerger(4), 
    splitter = context.createChannelSplitter(2); 
audio.connect(splitter); 
splitter.connect(merger, 0, 2); 
splitter.connect(merger, 0, 3); 
merger.connect(context.destination); 

как ни странно, если я подключайте его только к левому/правому каналу, который он играет, как ожидалось.

Я бег хрома 45 на окнах 10

ответ

1

Я думаю, что вы подключаетесь сплиттер слияния неправильно. Вероятно, вы захотите splitter.connect(merger, 0, 2); splitter.connect(merger, 1, 3); Затем источник стерео будет разделен и отправлен на каналы 2 и 3 выхода.

+0

Извините, я забыл мне упомянуть мой звуковой файл на самом деле моно, но это прочитать, чтобы быть стерео, так что я на самом деле не волнует, что это только один канал, если это то, что делает ваш код –

0

Вы можете поделиться своим настроенным кодом для AudioContext? Для индивидуальной маршрутизации требуется определенная настройка. Смотрите пример ниже:

var context = new AudioContext(); 
var maxChannelCount = context.destination.maxChannelCount; 

context.destination.channelCount = maxChannelCount;  
var merger = context.createChannelMerger(maxChannelCount); 
merger.connect(context.destination); 

// This will play the sound on 3rd and 4th speakers for 1 second. 
var osc = context.createOscillator(); 
osc.connect(merger, 0, 2); 
osc.connect(merger, 0, 3); 
osc.start(); 
osc.stop(1.0); 
Смежные вопросы