读取mp3小数值

时间:2011-04-02 13:48:39

标签: actionscript-3 mp3 decibel

我想阅读能够将本地mp3的间隔内的分贝值存储到文本文件中。我想我可以处理一个文本文件一旦我有值(虽然任何帮助会很棒) 最好

我想使用AS3

这样做

非常感谢

1 个答案:

答案 0 :(得分:0)

首先,您必须加载MP3,例如,使用Sound.load(),或者将其包含在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个样本的水平。你必须重复这个以获得更多的价值。