два монофонических аудиопотока, воспроизводите один на правом динамике, а другой - на левом динамике параллельно - PullRequest
0 голосов
/ 24 октября 2018

У меня есть два монофонических аудиопотока (mp3-файлы), которые я хочу воспроизводить параллельно, правый .mp3 должен звучать только на правом канале (динамик), а левый .mp3 только на левом канале (динамик).Как я могу это сделать?Я уже попробовал слияние, смотрите ниже.

var contextL = new AudioContext() || new webkitAudioContext(),
    requestL = new XMLHttpRequest();
    requestL.open("GET", "./left.mp3", true);
    requestL.responseType = "arraybuffer";
    requestL.onload = function(){
        contextL.decodeAudioData(requestL.response, onDecodedL);
    }

var contextR = new AudioContext() || new webkitAudioContext(),
    requestR = new XMLHttpRequest();

    requestR.open("GET", "./right.mp3", true);
    requestR.responseType = "arraybuffer";
    requestR.onload = function(){
        contextR.decodeAudioData(requestR.response, onDecodedR);
    }


function onDecodedL(buffer){
    var bufferSourceL = contextL.createBufferSource();
        bufferSourceL.buffer = buffer;
    var splitterL   = contextL.createChannelSplitter(2);
        bufferSourceL.connect(splitterL);
    var mergerL     = contextL.createChannelMerger(2);
    var gainL       = contextL.createGain();
        gainL.value = 0;
        splitterL.connect(gainL, 0);
        bufferSourceL.start();
}   

function onDecodedR(buffer){
    var bufferSourceR = contextR.createBufferSource();
        bufferSourceR.buffer = buffer;  
    var splitterR = contextR.createChannelSplitter(2);
        bufferSourceR.connect(splitterR);
    var mergerR = contextR.createChannelMerger(2);
    var gainR = contextR.createGain();
        gainR.value = 0;
        splitterR.connect(gainR,1);
        bufferSourceR.start();
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...