2017-04-22 79 views
0

我使用github中的這個spectrogram.js繪製頻譜圖並實時獲取頻率值。 Github Repo未在webaudio-api中獲取頻率值

我寫了這個額外stopSong功能:

function stopSong() { 
var analyser = audioContext.createAnalyser(); 
var ctx = new AudioContext(); 
    var osc = ctx.createOscillator(); 
    osc.connect(ctx.destination); 
    osc.start(0); 



spectro.stop(); 
var freqData= new Uint8Array(analyser.frequencyBinCount); 
analyser.getByteFrequencyData(freqData); 
//var f = Math.round(freqData[1]); 
// var text = f + ' Hz'; 
    var idx = 0; 
       for (var j=0; j < analyser.frequencyBinCount; j++) { 
        if (freqData[j] > freqData[idx]) { 
         idx = j; 
        } 
       } 
    var frequency = idx * ctx.sampleRate/analyser.fftSize; 
       console.log(frequency); 



    //document.getElementById("frec").innerHTML = text; 


      } 

但每次我運行它,它給0作爲輸出。任何人都可以告訴我的代碼有什麼問題。

回答

0

您需要的oscillator連接到analyser

oscillator.connect(analyser);

而且你可能想打電話給getByteFrequencyData多次,也許在​​,或類似的東西setTimeout

+0

它不工作,我試過。 –