获取当前播放声音的结果ByteArray

时间:2013-03-03 13:51:46

标签: actionscript-3 flash air audio-recording

我正在开发一个用于模拟鼓组的桌面AIR应用程序。按键盘将导致应用程序中播放相应的鼓声。我在应用程序中放置了音符,因此用户将尝试播放特定的歌曲。

现在我想记录整个性能并将其导出到视频文件,例如flv。我已经成功使用此编码器录制视频:
http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/

但是,此编码器无法自动录制声音。我需要找到一种方法来获取ByteArray在该特定帧处的声音,并将其传递给编码器。每个帧可能同时播放不同的Sound个对象,因此我需要获取最终声音的字节。

我知道SoundMixer.computeSpectrum()可以以字节为单位返回当前声音。但是,返回的ByteArray具有固定长度512,这不符合编码器的要求。经过一些测试,采样率为44khz 8 bit stero,编码器要求音频字节数据阵列的长度为5880. SoundMixer.computeSpectrum()返回的数据比所需的编码器短得多。

我的应用程序以60FPS运行,并以15FPS录制。

所以我的问题是:有没有什么方法可以获得当前帧中的音频字节,它由多个Sound个对象混合,并且具有足够的数据长度供编码器使用工作?如果没有API可以做到这一点,我将不得不混合音频并自己获取结果字节,如何做到这一点?

0 个答案:

没有答案