Отсутствие кусков при создании файла с AudioQueue

Таким образом, файл.wav имеет несколько стандартных блоков. В большинстве файлов, с которыми я работаю, сначала идет чанк "RIFF", затем чанк "fmt", а затем чанк "DATA". При записи с использованием AVAudioRecorder эти чанки создаются (хотя перед чанком "DATA" создается дополнительный "FLLR").

При создании файла с AudioQueue эти стандартные чанки не создаются. Вместо этого AudioQueue создает по порядку порции "caff", "desc", "lpcm", "free" и "data".

В чем дело? Разве не нужны куски "RIFF" и "fmt"? Как можно принудительно включить эти куски?

Я создаю файл с помощью:

AudioFileCreateWithURL (URL, kAudioFileCAFType, & inputDataFormat, kAudioFileFlags_EraseFile, & AudioFile);

с inputDataFormat, являющимся AudioStreamBasicDescription с полным набором свойств.

Так как же написать, по крайней мере, фрагменты "RIFF" и "fmt" с AudioQueue?

Благодарю.

1 ответ

Решение

Таким образом, файл.wav имеет несколько стандартных блоков....

При создании файла с AudioQueue эти стандартные чанки не создаются....

Я создаю файл с помощью:

AudioFileCreateWithURL(URL, kAudioFileCAFType, &inputDataFormat, kAudioFileFlags_EraseFile, &AudioFile);

Пусть это будет примером того, как важно показывать свой код в своем вопросе.:-)

kAudioFileCAFType является файлом Core Audio, а не файлом WAV. Пытаться kAudioFileWAVEType вместо.

Другие вопросы по тегам