2012-03-17 2 views
1

[EDIT: этот вопрос касается API Mozilla Audio Data, которая больше не рассматривается для HTML5 Audio API и не поддерживается]Как сделать панорамирование в HTML5-Audio/Mozilla Audio API данных

Я пытаюсь измените дополнение аудиофайла с помощью API аудио данных Mozilla. Я не нашел способа сделать это. Я даже пытался отделить каналы и передавать их через различные фильтры с помощью другого dbGain без везения.

ответ

2

Ключом для изменения баланса вашего аудиофайла является захват данных (например, музыкального музыкального файла) и изменение значения (амплитуды) правого и левого каналов. Доступ к правому и левому каналу будет выполняться с помощью [i * 2] и [i * 2 + 1], потому что они находятся в строке.

Возьмем пример на рисунке ниже (который я скопировал из книги HTML5 игр от Wiley):

function generateTone(freq, balance,sampleRate) { 
    var samples = Math.round(sampleRate/freq), 
    data = new Float32Array(samples *2), 
    var sample, i; 

    for (i = 0; i < samples; i++) { 
    sample = Math.sin(Math.PI * 2 * i/samples); 
    data[i * 2] = sample * (0.5 - balance); 
    data[i * 2 + 1] = sample * (0.5 + balance); 
    } 

    return data; 
} 

поколение пазухи вы не будете нуждаться в вашем случае. Другие вопросы? С наилучшими пожеланиями, Lukas

+0

, видя такие вещи, если бы я был умнее ботаником: р – bigblind

+0

API Mozilla данных умирает, но ваш ответ помог мне тогда, так она заслуживает +1 – sepans