Исходя из ресурса здесь (определяющего структуру файла 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" ?Какие из них поддерживаются?