Actionscript 3 读取mp3十进制值
我想读一读能够将本地mp3的分贝值存储到一个文本文件中。我想一旦我有了这些值,我就可以处理写入文本文件的问题(尽管任何帮助都会很好) 最好的 我想用AS3做这个Actionscript 3 读取mp3十进制值,actionscript-3,mp3,decibel,Actionscript 3,Mp3,Decibel,我想读一读能够将本地mp3的分贝值存储到一个文本文件中。我想一旦我有了这些值,我就可以处理写入文本文件的问题(尽管任何帮助都会很好) 最好的 我想用AS3做这个 非常感谢首先,您必须加载MP3,例如,使用,或将其包含在Flash IDE中的库中,并将其导出为ActionScript。然后,您可以使用从MP3中获取波形数据。这将返回压缩在a中的间隔的样本数据,您可以读取这些数据 样本在[-1.0,1.0]范围内,因此计算区间强度水平的一种简单方法是找到样本中的最大绝对值。下面是一些示例代码: va
非常感谢首先,您必须加载MP3,例如,使用,或将其包含在Flash IDE中的库中,并将其导出为ActionScript。然后,您可以使用从MP3中获取波形数据。这将返回压缩在a中的间隔的样本数据,您可以读取这些数据 样本在[-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个样本的级别。您必须重复此操作才能获得更多值