2009-08-06 12 views
1

Un fichier .wav contient donc quelques fragments standard. Dans la plupart des fichiers avec lesquels je travaille, le morceau "RIFF" est d'abord, puis un morceau "fmt", puis le morceau "DATA". Lors de l'enregistrement à l'aide de AVAudioRecorder, ces blocs sont créés (bien qu'un "FLLR" supplémentaire soit créé avant le bloc "DATA".)Morceaux manquants lors de la création d'un fichier avec AudioQueue

Lors de la création d'un fichier avec AudioQueue, ces blocs standard ne sont pas créés. Au lieu de cela, AudioQueue crée, dans l'ordre, des morceaux "caff", "desc", "lpcm", "free" et "data".

Que se passe-t-il? Les blocs "RIFF" et "fmt" ne sont-ils pas requis? Comment force-t-on l'inclusion de ces morceaux?

Je crée un fichier par:

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

avec inputDataFormat étant une AudioStreamBasicDescription avec un ensemble complet de propriétés.

Alors comment écrire au moins les morceaux "RIFF" et "fmt" avec AudioQueue?

Merci.

Répondre

1

Ainsi, un fichier .wav comporte quelques fragments standard. ...

Lors de la création d'un fichier avec AudioQueue, ces blocs standard ne sont pas créés. ...

Je crée un fichier par:

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

Que ce soit un exemple de la valeur de montrer d'un code de l'une de la question. :-)

kAudioFileCAFType est un fichier audio Core, pas un fichier WAV. Essayez plutôt kAudioFileWAVEType.

+0

Je pourrais vous embrasser! Je vous remercie!! –