Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 环绕声(5.1)网络音频支持_Javascript_Html_Audio_Web - Fatal编程技术网

Javascript 环绕声(5.1)网络音频支持

Javascript 环绕声(5.1)网络音频支持,javascript,html,audio,web,Javascript,Html,Audio,Web,我正在尝试创建一个简单的应用程序,在所有5.1频道中播放立体声/单声道音乐。在学习了网络音频规范之后,我花了4个小时来编写代码。不幸的是,我什么也没有得到。音频仅在2个频道上播放。如果我设置merge.channelCountMode=“explicit”,它将仅从中央频道播放 如果我设置merge.channelexplation=“离散”;它只在左声道播放。我做错了什么?非常感谢你。 我的代码: var音频; 函数playround(){ 上下文=新的AudioContext(); 音频=

我正在尝试创建一个简单的应用程序,在所有5.1频道中播放立体声/单声道音乐。在学习了网络音频规范之后,我花了4个小时来编写代码。不幸的是,我什么也没有得到。音频仅在2个频道上播放。如果我设置merge.channelCountMode=“explicit”,它将仅从中央频道播放

如果我设置merge.channelexplation=“离散”;它只在左声道播放。我做错了什么?非常感谢你。 我的代码:

var音频;
函数playround(){
上下文=新的AudioContext();
音频=新音频();
audio.src=“a.mp3”;
var source=context.createMediaElementSource(音频);
context.destination.channelCount=6;
audio.currentTime=Math.random()*200;
//创建一个拆分器,将立体声音频数据“分离”到两个通道。
var splitter=context.createChannelSplitter(6);
splitter.channelCount=6;
//splitter.channelexplation=“离散”;
//splitter.channelCountMode=“显式”;
控制台日志(拆分器);
//将源连接到拆分器(通常,您将使用上下文目标之前的最后一个音频节点)
源。连接(拆分器);
//创建两个增益节点(立体图像每侧一个)
var panLeft=context.createGain();
var panRight=context.createGain();
var panLeftSurround=context.createGain();
var panRightSurround=context.createGain();
var panCenter=context.createGain();
var pansubwooter=context.createGain();
//将拆分器通道连接到我们刚刚创建的增益节点
拆分器。连接(左窗格,0);
拆分器。连接(右窗格,1);
拆分器。连接(panCenter,2);
分离器。连接(泛低音扬声器,3);
拆分器。连接(panLeftSurround,4);
拆分器。连接(panRightSurround,5);
panLeft.gain.value=1;
panRight.gain.value=1;
panLeftSurround.gain.value=1;
panRightSurround.gain.value=1;
panCenter.gain.value=1;
泛低音扬声器.gain.value=1;
//创建合并节点,以将两个信号恢复到一起
var合并=context.createchannelmerge(6);
合并数=6;
//merge.channel=“离散”;
merge.channelCountMode=“explicit”;
console.log(合并);
panLeft.connect(合并,0,0);
panRight.connect(合并,0,1);
panCenter.connect(合并,0,2);
泛低音扬声器。连接(合并,0,3);
panLeftSurround.connect(合并,0,4);
panRightSurround.connect(合并,0,5);
//将合并节点连接到最终音频目标(扬声器)
合并.connect(context.destination);
source.mediaElement.play();

}
context.destination.maxChannelCount的值是多少?可能是您需要将该值设置为6,或者可能是目标无法实际处理超过2个通道。