分析声音提前 - Actionscript

时间:2011-10-11 21:58:24

标签: audio actionscript

我想创建一款游戏,可以在播放前几秒钟分析mp3。一个基本的想法类似于吉他英雄,你可以看到准备的“烦恼”,然后他们实时地点击并与歌曲同步。

有没有办法提前分析声音文件,或分析静音的声音文件?

1 个答案:

答案 0 :(得分:1)

您可以使用Sound.extract()访问基础音频数据。您还可以通过向SampleDataEvent侦听器添加SampleDataEvent侦听器并在不提供mp3的情况下播放它来动态地将样本提供给Sound对象。

所以基本上这个过程通常是这样的:

  1. 将mp3加载到Sound对象中。
  2. 将部分或全部示例数据提取到ByteArray中,以便您可以对其进行分析/修改。根据您的需要,您可以一次提取足够的数量,以便按照您想要的数量保持在输出之前。
  3. 为输出创建第二个Sound对象 - 不要为此提供mp3。为SampleDataEvents添加一个侦听器,然后播放它。它将定期发送SampleDataEvents,因为它需要更多的音频(一次需要2048,4096或8192个样本,44100是一秒的值)。每次获得SampleDataEvent时,都会将其数据ByteArray属性与您希望它下一个播放的样本一起填充。
  4. 虽然我不确切地知道你正在尝试做什么,但听起来你的提取过程会在你的播放过程前几秒钟进行 - 提取到缓冲区ByteArray,进行分析,然后每次输出Sound请求更多样本时,从缓冲区BA的开头复制样本。