Значение децибела в веб-аудио

Я использую https://github.com/edimuj/cordova-plugin-audioinput для приложения JavaScript, которое я разрабатываю. Я пытаюсь получить разные значения децибел на разных частотах в режиме реального времени, используя этот код:

function startCapture() {
    audioinput.start({
        audioSourceType: 9,
        sampleRate: 44100,
        streamToWebAudio: true
    });

    audioCtx = audioinput.getAudioContext();
    analyser = audioCtx.createAnalyser();
    analyser.fftSize = 8192;
    analyser.maxDecibels = 0;
    audioinput.connect(analyser)

    bufferLength = analyser.frequencyBinCount;
    dataArray = new Uint8Array(bufferLength);
}

Данные сохраняются в dataArray с помощью analyser.getByteFrequencyData(dataArray);

Хотя я указываю maxDecibels в 0, dataArray наполняется положительными ценностями, которые не имеют никакого смысла для меня. Мне нужно, чтобы конечный результат был в децибелах, и хотя значения, которые вставляются в dataArray реагировать соответственно на громкость в реальном времени, они не в децибелах.

1 ответ

Значения, возвращаемые getByteFrequencyData() всегда находятся в диапазоне от 0 до 255. И эти значения отображаются линейно из minDecibels в maxDecibels, Смотрите getByteFrequencyData.

Другие вопросы по тегам