2011-04-02 97 views
0

我想讀取能夠將本地mp3間隔的分貝值存儲到文本文件中。我想我可以處理寫入一個文本文件,一旦我有值(雖然任何幫助將是巨大的) 最佳讀取mp3十進制值

我想做到這一點使用AS3

和千恩萬謝

回答

0

首先,例如,必須使用Sound.load()加載MP3,或者將其加載到Flash IDE的庫中並導出爲ActionScript。然後,您可以使用Sound.extract()從MP3中獲取波形數據。這將爲您提供樣本數據,並返回到您可以讀出的ByteArray包裝的時間間隔。

樣品在[-1.0,1.0]範圍內,因此計算間隔強度級別的一種簡單方法是在樣品中找到最大絕對值。以下是一些示例代碼:

var sound:Sound = new Sound(); 
sound.load(new URLRequest("sound.mp3")); 
sound.addEventListener(Event.COMPLETE, onSoundLoaded); 

function onSoundLoaded(event:Event):void { 
    var byteArray:ByteArray = new ByteArray(); 
    sound.extract(byteArray, 4096); 
    byteArray.position = 0; 
    var max:Number = 0; 
    while(byteArray.position != byteArray.length) 
    { 
     var sample:Number = Math.abs(byteArray.readFloat()); 
     if(sample > max) max = sample; 
    } 
    trace(max); 
} 

這將輸出前4096個採樣的級別。你將不得不重複這個來獲得更多的價值。

+0

非常感謝幫助 – 2011-04-05 17:55:02