Как загрузить файл WAV с помощью Sound.loadPCMFromByteArray ()? - PullRequest
4 голосов
/ 01 февраля 2012

Исходя из ресурса здесь (определяющего структуру файла WAV ), я смог получить аудиоданные между 44-м байтом и ближе к концу файла (в конце существуют некоторые дополнительные метаданные, которые не нужны).

Но у меня возникают проблемы с загрузкой его с помощью нового метода Sound.loadPCMFromByteArray(), доступного в Flash Player 11.

Я получаюэта ошибка, если я передаю количество выборок:

_sound.loadPCMFromByteArray(pcm, pcm.length, "float", wav.isStereo, wav.sampleRate);
  • [Fault] исключение, информация = 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);

Нужно ли обрабатывать данные ByteArray WAV определенным образом, чтобы соответствовать читаемому формату PCM?Нужно ли вставлять символ EOF в конце, чтобы он знал, когда остановить звуковой файл?

Должен ли я использовать другой формат, чем "float" ?Какие из них поддерживаются?

...