Я использую javascript и пытаюсь написать программу, которая, помимо прочего, будет воспроизводить mp3 через левый или правый динамик (он будет отличаться), но не оба одновременно. Однако я хочу, чтобы он был абсолютно бесшумным на другом громкоговорителе.
В прошлом я находил способы громко воспроизводить звук через один громкоговоритель, и хотя он должен быть бесшумным в другом громкоговорителе, он всегдаиграет через (хотя и тихо). Я думал, что это была ошибка моего компьютера, пока я не нашел тест левого и правого динамиков YouTube, который правильно воспроизводит только один динамик.
Я искал часы, пробуя узлы pannerNode, сплиттер, но что бы я ни делал,кажется, что он никогда не работает правильно (или вообще не работает).
Любая помощь будет принята с благодарностью!
В идеале вот что я хотел бы добавить:
sound1 = new Audio();
sound1.src = 'pizza.mp3';
sound1.play();
Если можно добавить код, чтобы он воспроизводился только через левый (или правый) динамик, это было бы здорово. И если это возможно, то не читайте дальше!
Я пробовал код сплиттера, который я получил в Интернете, и он должен быть в состоянии отключить звук влево или вправо, но, похоже, он будет толькоиграть на левом уровне громкости (или, точнее, на том, который я прикрепляю к точке 0 «splitter.connect (что-то, 0);» Кроме того, он воспроизводится через оба динамика на левом уровне громкости. Это может быть потому, что яЯ использую осциллятор в качестве теста (я не был уверен, как прикрепить к нему mp3), или это может быть, я делаю что-то радикально неправильное. Как я уже говорил, часы пробовал разные вещи, а аудио в javascript не моесила.
Ниже приведено то, что я пытался использовать, основываясь на чем-то, из чего я читал: MarijnS95. Однако, как я уже сказал, я не могу заставить его играть в .mp3, и он всегда будет играть слевагромкость, но через оба динамика. оригинальный пост
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();
Надеюсь, что это имеет какой-то смысл.
Заранее спасибо!