osx – 可以使用Web Audio API输出多达8个通道吗?

前端之家收集整理的这篇文章主要介绍了osx – 可以使用Web Audio API输出多达8个通道吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Web Audio API在多频道设置中控制交互式音乐播放.到目前为止,我设法将12声道声卡上的8个振荡器的声音指向8个不同的通道,但一旦我尝试使用8个以上的通道,突然间所有的通道都会被静音.经过大量的研究,我也注意到audioContext.currentTime被卡在接近零的值上.

这是MAC OSX 10.8.5的结果
Google Chrome版本39.0.2171.27 beta(64位)
和版本40.0.2192.0金丝雀(64位).

Safari不允许我处理超过2个频道
FireFox使用audioContext.destination.maxChannelCount找到我的12个频道,但是继续将我的声音路由到频道1& 2,无论我是否尝试通过gain.connect(channelMerger,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,i);
    oscillator.start(0);
}

解决方法

我们还没有在Firefox中实现多渠道支持.这是一个优先事项,并将在接下来的两个季度的某个时候发生.

猜你在找的HTML相关文章