2014-10-17 49 views
10

我正在試驗Web Audio API以控制多通道設置中交互式音樂的播放。到目前爲止,我已經設法將多達8個振盪器的聲音指向我的12聲道聲卡上的8個不同聲道,但只要嘗試使用8個以上的聲道,突然間所有聲道都會變得靜音。經過大量研究後,我也注意到audioContext.currentTime卡在零值附近。使用Web Audio API可以輸出多於8個頻道嗎?

這是我MAC OSX的結果10.8.5 谷歌瀏覽器版本39.0.2171.27 beta(64位) 和版本40.0.2192.0 canary(64位)。

Safari瀏覽器不允許我解決超過2個通道 火狐發現我的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); 
} 
+0

[在網絡上錄製音頻,預設:16000Hz 16位]的可能重複(http://stackoverflow.com/questions/28969304/record-audio-on-web-preset-16000hz-16bit) – 2015-09-18 20:51:34

回答

0

我們還沒有在Firefox中實現多通道支持。它的優先次序將在未來兩個季度的某個時間點發生,不久之後會發布。