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