网络音频的分贝值

时间:2018-07-11 20:43:06

标签: javascript audio cordova-plugins web-audio decibel

我正在为自己开发的JavaScript应用程序使用cordova-plugin-audioinput插件。我正在尝试使用以下代码实时获取不同频率的不同分贝值:

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设置为0dataArray也会充满正值,这对我来说实际上没有任何意义。我需要最终结果以分贝为单位,即使被推入dataArray的值会实时对体积做出相应的反应,但不是分贝。

1 个答案:

答案 0 :(得分:1)

getByteFrequencyData()返回的值始终在0到255的范围内。这些值从minDecibelsmaxDecibels线性映射。参见getByteFrequencyData