2017-06-14 2 views
0

Ich möchte Eingang von Mikrofon nehmen und es an den Analyseknoten übergeben, um die Frequenzdaten zu extrahieren. Ich erforschte Web Audio API und GetUserMedia für irgendwann aber konnte nicht herausfinden, warum alle Werte in der Konsole negativ sind. Sollte es nicht auch positive Werte geben? Welche Bedeutung haben diese negativen Werte?Warum sind die von getFloatFrequencyData zurückgegebenen Werte negativ?

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); 
     } 

Antwort

1

von the spec

getFloatFrequencyData

Kopiert die aktuelle Frequenzdaten in dem übergebenen Gleitkommazahl-Array. Wenn das Array weniger Elemente als frequencyBinCount hat, werden die überschüssigen Elemente verworfen. Wenn das Array mehr Elemente als frequencyBinCount hat, werden die überschüssigen Elemente ignoriert.

Die Frequenzdaten sind in dB-Einheiten.

, die dann auf die Frage führt: What does negative numbers on the decibel scale mean?

Verwandte Themen