我想从麦克风获取输入并将其传递给分析器节点以提取频率数据。我有一段时间探索了 Web Audio Api 和 GetUserMedia ,但无法弄清楚为什么控制台中的所有值都是否定。不应该有积极的价值观吗?这些负面价值观有何意义?
navigator.mediaDevices.getUserMedia({audio: true, video:false}).then(function(stream){
aContext = new AudioContext();
analyser = aContext.createAnalyser();
microphone = aContext.createMediaStreamSource(stream);
microphone.connect(analyser);
analyser.connect(aContext.destination);
LoopFunc();
});
var LoopFunc = function (){
setInterval(function(){
frequencyData = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(frequencyData);
console.log(frequencyData);
},100);
}
答案 0 :(得分:1)
来自the spec
getFloatFrequencyData
将当前频率数据复制到传递的浮点数组中。如果数组的元素少于frequencyBinCount,则会删除多余的元素。如果数组的元素多于frequencyBinCount,则多余的元素将被忽略。
频率数据以dB为单位。
然后会出现问题:What does negative numbers on the decibel scale mean?