Question

Je fais une application d'enregistrement de l'iPhone qui doit soumettre le fichier audio en .wav à un serveur externe.

A partir de l'exemple SpeakHere, je suis en mesure d'enregistrer le son en tant que fichier, mais seulement comme .caf

Quelqu'un sait comment enregistrer comme un wav au lieu? Ou comment convertir .caf .wav sur l'iPhone? (La conversion doit se produire sur le téléphone)

EDIT:

Je me demande si quelque chose peut être fait avec l'aide kAudioFileWAVEType au lieu de kAudioFileCAFType dans AudioFileCreateWithURL

Était-ce utile?

La solution

Eh oui, la clé est kAudioFileWAVEType

AudioFileCreateWithURL (
            audioFileURL,
            kAudioFileWAVEType,
            &audioFormat,
            kAudioFileFlags_EraseFile,
            &audioFileID
        );

Modification WAVE de la CAF dans l'exemple SpeakHere provoque l'enregistrement d'être aussi wav. J'édite aussi la même chose dans la classe de lecture, et a changé le nom de fichier à Recording.wav

Autres conseils

Jetez un oeil à libsndfile . Il est bien utilisé (y compris par Audacity) bibliothèque C pour travailler avec beaucoup de formats de fichiers. Il prend en charge lecture et d'écriture d'une variété de formats CAF et WAV.

Le CAF structure du fichier et format WAV sont assez similaires. Si le pire arrive au pire, la conversion ne devrait pas être trop dur.

Il implique de prendre le bloc de données audio et la copie comme il est dans le fichier WAV, et en utilisant les informations dans la description audio Chunk d'ajouter un équivalent fmt subchunk pour le fichier WAV. Il est assez simple copie d'octets.

Cependant, soyez conscient (comme Eric a souligné) il y a des problèmes de licences, voir: peut la bibliothèque libsndfile être utilisée sur l'iPhone iOS?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top