【发布时间】:2020-02-23 03:29:03
【问题描述】:
我正在使用 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 audio mono headphones