我正在开发一个用于模拟鼓组的桌面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可以做到这一点,我将不得不混合音频并自己获取结果字节,如何做到这一点?