我正在使用JavaScript,并且我正在尝试编写一个程序,该程序除其他外,将通过左扬声器或右扬声器播放mp3(这会有所不同),但不能同时播放两者。但是,我希望它对其他发言人绝对保持沉默。
[过去,我已经找到了通过一个扬声器大声播放声音的方法,尽管在另一个扬声器中它应该保持静音,但它始终会(尽管安静地)播放。我以为这是我的计算机的故障,直到我发现一个YouTube左右扬声器测试可以正确地通过一个扬声器播放。
我已经搜索了几个小时,尝试使用pannerNodes,拆分器,但是无论如何,它似乎都无法正常工作(或根本无法工作。)>
任何帮助将不胜感激!
理想情况下,这是我想添加到的内容:
sound1 = new Audio();
sound1.src = 'pizza.mp3';
sound1.play();
如果可以添加代码以仅通过左(或右)扬声器进行播放,那就太棒了。如果可能的话,请不要继续阅读!
我已经尝试了分割器代码,该代码已在线上运行,应该能够使左侧或右侧静音,但是似乎只能以左侧音量播放(或更准确地说,无论我选择哪个音量,附加到“ splitter.connect(something,0);”的0点上。此外,它通过左侧音量的两个扬声器播放。这可能是因为我正在使用振荡器作为测试(不确定如何附加一个mp3),或者可能是我做错了什么。就像我说的那样,数小时尝试各种事情以及使用javascript播放音频并不是我的强项。
以下是我根据从MarijnS95中读取的内容尝试使用的内容。但是,就像我说的那样,我无法让它播放.mp3,它始终会以左音量播放,而是通过两个扬声器播放。original post
tone = new AudioContext();
tone.createGain = tone.createGain||tone.createGainNode; //fallback for gain naming
gainL = tone.createGain();
gainR = tone.createGain();
splitter = this.tone.createChannelSplitter(2);
//Connect splitter' outputs to each Gain Nodes
splitter.connect(gainR, 1);
splitter.connect(gainL, 0);
//Connect to source
source = tone.createOscillator();
//Connect the source to the splitter
source.connect(splitter,0,0);
//Connect Left and Right Nodes to the output
//Assuming stereo as initial status
gainL.connect(tone.destination, 0);
gainR.connect(tone.destination, 0);
//Mute left channel and set the right gain to normal
gainL.gain.value = 1;
gainR.gain.value = 0;
source.start();
希望如此。
提前感谢!
我正在使用JavaScript,并且我正在尝试编写一个程序,该程序除其他外,将通过左扬声器或右扬声器播放mp3(这会有所不同),但不能同时播放两者。但是,我希望它是...
您可以使用StereoPannerNode
代替增益和分配器: