加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

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

发布时间:2020-12-14 19:32:35 所属栏目:资源 来源:网络整理
导读:我正在尝试使用Web Audio API在多频道设置中控制交互式音乐播放.到目前为止,我设法将12声道声卡上的8个振荡器的声音指向8个不同的通道,但一旦我尝试使用8个以上的通道,突然间所有的通道都会被静音.经过大量的研究,我也注意到audioContext.currentTime被卡在
我正在尝试使用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中实现多渠道支持.这是一个优先事项,并将在接下来的两个季度的某个时候发生.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读