Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 读取mp3十进制值_Actionscript 3_Mp3_Decibel - Fatal编程技术网

Actionscript 3 读取mp3十进制值

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的分贝值存储到一个文本文件中。我想一旦我有了这些值,我就可以处理写入文本文件的问题(尽管任何帮助都会很好) 最好的

我想用AS3做这个


非常感谢

首先,您必须加载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个样本的级别。您必须重复此操作才能获得更多值