【问题标题】:I WANT TO: Play .mp3 through only one speaker我想:只通过一个扬声器播放 .mp3
【发布时间】: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


    【解决方案1】:

    您可以使用StereoPannerNode 代替增益和分离器:

    var audioCtx = new AudioContext();
    
    // Create a stereo panner
    var pan = audioCtx.createStereoPanner();
    
    // Shift panning to the left
    pan.pan.value = -1;
    
    //Connect to source
    var source = audioCtx.createOscillator();
    source.connect(pan);
    pan.connect(audioCtx.destination, 0);
    
    source.start();

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多