【问题标题】:Why are the values returned from getFloatFrequencyData negative?为什么 getFloatFrequencyData 返回的值是负数?
【发布时间】:2017-11-16 16:18:50
【问题描述】:

我想从麦克风获取输入并将其传递给分析器节点以提取频率数据。我探索了 Web Audio ApiGetUserMedia 一段时间,但无法弄清楚为什么控制台中的所有值都是 negative。不应该也有积极的价值观吗?这些负值有什么意义?

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

【问题讨论】:

    标签: javascript fft microphone getusermedia web-audio-api


    【解决方案1】:

    来自the spec

    getFloatFrequencyData

    将当前频率数据复制到传递的浮点数组中。如果数组的元素少于 frequencyBinCount,则多余的元素将被丢弃。如果数组的元素多于frequencyBinCount,多余的元素将被忽略。

    频率数据以 dB 为单位。

    然后引出问题:What does negative numbers on the decibel scale mean?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-29
      • 2020-04-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-03
      • 2012-08-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多