我學習/ Web Audio API使用打,這是真棒。 我有一些代碼,它分析音頻流的FFT並實時進行一些計算。它運行在瀏覽器中。PhantomJS分析MP3文件的FFT數據,並將其保存
但現在我需要做同樣的事情,但處理整個的AudioFile和獲取數據的陣列,而不是打它,並實時分析和最好的情況下做到這一點在Phantomjs。如果它是不可能的,瀏覽器就可以了..也
示例代碼:
var audioElement = document.getElementById("player");
var audioContext = new AudioContext();
var source = audioContext.createMediaElementSource(audioElement);
analyserNode = audioContext.createAnalyser();
analyserNode.fftSize = 2048;
source.connect(analyserNode);
source.connect(audioContext.destination);
analyserNode.connect(audioContext.destination);
和循環功能:
var freqByteData = new Uint8Array(analyserNode.frequencyBinCount);
analyserNode.getByteFrequencyData(freqByteData);
//do processing FFT data
現在我需要加載一個mp3文件,並處理循環功能來獲得一些結果數據。所以不要等待它播放,而是立即處理它。
的問題是,我從來沒有嘗試過phantomjs。我需要瀏覽器的確切結果,我在計算中也使用analyserNode.smoothingTimeConstant。 要求是每秒獲取數據30次。
如果有可能,如何重寫此代碼並運行它,如 ./phantomapp file.mp3 它將數據保存到某個txt文件或stdout?
如果這是不可能與phantomjs,如何採用該代碼在瀏覽器中運行?
感謝
PhantomJS沒有支持音頻和視頻。也許看看Electron和/或NW.js? – Vaviloff
所以你是服務器端的權利?首先由ffmpeg將你的mp3解壓縮爲一個原始的wav。然後分析這個原始的wav比較容易。幾個節點包:https://www.npmjs.com/browse/keyword/fft – Kaiido