如何使用Sound.loadPCMFromByteArray()加载WAV文件?

时间:2012-02-01 19:29:03

标签: flash actionscript-3 audio bytearray pcm

基于资源here(定义WAV文件的结构),我能够在文件的第44个字节和接近结尾之间获取音频数据(一些最后存在额外的元数据,这是不必要的。)

但是我无法使用Flash Player 11中提供的新Sound.loadPCMFromByteArray()方法加载它。

如果我传递了样本数量,我会收到此错误:

_sound.loadPCMFromByteArray(pcm, pcm.length, "float", wav.isStereo, wav.sampleRate);
  • [Fault] exception,information = ArgumentError:错误#2084:参数的AMF编码不能超过40K

但是,如果我将pcm.length除以四(4),它似乎可以播放“某些东西”,但根本不是我最初传递它的样本。另外,它听起来像是循环永远,这是预期的行为吗? (我当然希望不会!

 //Dividing by 4 (# >> 2 is the same) is playable, but incorrect!
 _sound.loadPCMFromByteArray(pcm, pcm.length >> 2, "float", wav.isStereo, wav.sampleRate);

是否需要以某种方式处理WAV数据的ByteArray以符合可读的PCM格式?我是否需要在末尾插入 EOF 字符,以便知道何时停止声音文件?

我应该使用“float”之外的其他格式吗?支持哪些?

0 个答案:

没有答案