1

したがって、.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 でどのように記述するのでしょうか?

ありがとう。

4

1 に答える 1

1

したがって、.wav ファイルにはいくつかの標準チャンクがあります。…</p>

AudioQueue でファイルを作成する場合、これらの標準チャンクは作成されません。…</p>

⋮</p>

次の方法でファイルを作成しています。

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

これを、自分の質問で自分のコードを示すことの価値の例にしましょう。:-)

kAudioFileCAFTypeWAVファイルではなくコアオーディオファイルです。kAudioFileWAVEType代わりに試してください。

于 2009-08-06T06:06:29.313 に答える