所以一个 .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。
那么,至少,如何使用 AudioQueue 编写“RIFF”和“fmt”块?
谢谢。