gpt4 book ai didi

macos - Web Audio API 是否可以输出超过 8 个 channel ?

转载 作者:行者123 更新时间:2023-12-01 20:20:28 27 4
gpt4 key购买 nike

我正在尝试使用 Web Audio API 来控制多 channel 设置中交互式音乐的播放。到目前为止,我已经成功地将最多 8 个振荡器的声音引导到 12 channel 声卡上的 8 个不同 channel ,但是一旦我尝试使用超过 8 个 channel ,所有 channel 都会突然静音。经过大量研究后,我还注意到 audioContext.currentTime 卡在接近零的值上。

这是我在 MAC OSX 10.8.5 上的结果Google Chrome 版本 39.0.2171.27 测试版(64 位)和版本 40.0.2192.0 canary(64 位)。

Safari 不允许我处理超过 2 个 channel FireFox 使用 audioContext.destination.maxChannelCount 找到我的 12 个 channel ,但无论我是否尝试使用 gain.connect( 将振荡器连接到更高的数字,它都会继续将我的声音路由到 channel 1 和 2 channel 合并,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);
}

最佳答案

我们尚未在 Firefox 中实现多 channel 支持。它已被优先考虑,并将在接下来的两个季度的某个时候发生,然后不久后发布。

关于macos - Web Audio API 是否可以输出超过 8 个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434235/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com