2011-10-11 51 views
0

我想创建一个游戏,它可以在现场演奏之前几秒钟分析一首mp3。一个基本的想法与吉他英雄类似,你可以看到即将出现和准备的'苦恼',然后他们实时击中并同步该歌曲。分析时间前面的声音 - Actionscript

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

回答

1

您可以使用Sound.extract()访问基础音频数据。您还可以通过向SampleDataEvent侦听器添加SampleDate事件侦听器并将其播放,而不用提供MP3来动态地将示例馈送到Sound对象。

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

  1. 加载一个MP3到Sound对象中。
  2. 将其部分或全部样本数据提取到ByteArray中,以便分析/修改它。根据你需要做的事情,你可能一次只提取足够的数量,以便按照你想要的数量保持在输出之前。
  3. 创建第二个声音对象输出 - 不要提供这个与MP3。为SampleDataEvents添加一个监听器,然后播放它。它会定期发送SampleDataEvents,因为它需要更多的音频(每次需要2048,4096或8192个样本,44100是一秒钟的样本)。每次获取SampleDataEvent时,都会将其数据ByteArray属性填充到您希望下一次播放的样本中。

虽然我不明白它到底是什么你想要做的,它听起来就像你保持你的提取过程会几秒钟前进您的播放过程中 - 解压到一个缓冲的ByteArray,做您的分析,然后每当输出声音请求更多采样时从该缓冲区BA的开头复制采样。