基于资源here(定义WAV文件的结构),我能够在文件的第44个字节和接近结尾之间获取音频数据(一些最后存在额外的元数据,这是不必要的。)
但是我无法使用Flash Player 11中提供的新Sound.loadPCMFromByteArray()
方法加载它。
如果我传递了样本数量,我会收到此错误:
_sound.loadPCMFromByteArray(pcm, pcm.length, "float", wav.isStereo, wav.sampleRate);
但是,如果我将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”之外的其他格式吗?支持哪些?