Question

Je vais avoir du mal à essayer d'enregistrer autre chose que PCM linéaire sur l'iPhone :-( Les échantillons que j'ai trouvé (SpeakHere SDK, pour Zdziarski et les livres de Sadun et celui de trailsinthesand.com) utilisent tous PCM linéaire, mais je voudrais un format compressé généralement utilisé à la place (pas IMA4 ou quel que soit le nom est ...).

Je ne peux pas comprendre comment modifier l'exemple de code à utiliser avec, par exemple AAC, MP3 ou AMR à la place. Toutes les suggestions et conseils sur la façon de le faire sont très appréciés!

(BTW, je ne pense pas un encodeur MP3, ni AMR-encodeur sont disponibles en raison de problèmes de licences, mais AAC existe, ou ???)

Modifier / Mise à jour: Je suis tombé sur le texte suivant dans "Application iPhone Guide de programmation" d'Apple, 2009-01-06, la page 137, section: Enregistrement audio:
« Vous pouvez enregistrer de l'audio dans l'un des formats répertoriés dans « Formats audio préférés dans iPhone OS »(page 140) », et que les formats audio préférés à la page 140 sont: « Pour l'audio compressé lors de la lecture d'un son à la fois, et quand vous n'avez pas besoin de jouer simultanément audio avec l'application iPod, utilisez le format AAC emballé dans un fichier CAF ou m4a. "
Ainsi, j'interprète cela comme une indication claire qu'il est en effet, non seulement possible, mais même préférable, pour enregistrer l'audio au format AAC enveloppé dans un fichier m4a, ce qui est exactement ce que je veux. Mais encore, je ne suis pas en mesure de réaliser cela?

Merci, / John

Était-ce utile?

La solution

Continuez de regarder ces documents. Dans "Core Audio Essentials", la section "Core Audio Plug-ins: Audio Units et Codecs" note que:

  

iPhone OS contient l'enregistrement   codecs répertoriés dans le tableau 2-5. Comme tu peux   voir, ni enregistrement, ni MP3 AAC est   disponible. Cela est dû à la CPU haute   les frais généraux, et la batterie conséquente   égoutter, de ces formats.

Le tableau 2-5 répertorie plusieurs formats, mais comme les notes de texte ne comprend pas ceux que vous recherchez. Si vous voulez que ces formats, vous devrez apporter votre propre encodeur.

Autres conseils

Il est possible dans l'iPhone 3GS et iPod 2ème génération et au-dessus. Ils ont un enconder matériel pour AAC. Il est un exemple de projet Apple pour ce qui fait exactement ce que vous voulez faire:

iPhoneExtAudioFileConvertTest

Une astuce pour utiliser FAAC convertir les fichiers pcm iPhone-sortie linéaire au format aac:

J'ai trouvé par l'expérimentation que vous devez utiliser le drapeau sur la -X version ligne de commande de FAAC (fonctionnant sous Mac OS X), qui « permute les octets d'entrée. » (Je suppose que cela change la endian-ness.)

Ainsi, par exemple, si vous le fichier audio enregistré sur votre iPhone linear.pcm, vous pouvez alors exécuter:

faac -XP linear.pcm

sur votre Mac pour convertir en fichier aac linear.aac.

Je suppose que cela signifie que vous pourriez être en mesure d'utiliser FAAC sein de votre application pour effectuer la conversion, si vous vouliez, car il est une bibliothèque C.

A noter également que, sur le plan technique, la sortie des fichiers par les services audio de l'iPhone sont généralement des fichiers CAF, Format Core Audio, qui est en quelque sorte un format d'emballage autour d'un tas de codages possibles: noreferrer docs d'Apple sur CAF . La ligne de commande ci-dessus fonctionne bien pour moi, même si commence par la caff tête <=>.

Avez-vous essayé Boiteux encodeur mp3? Ou FAAC / faad codecs AAC? Vous pouvez les intégrer dans ffmpeg pour les codecs audio encore plus.

Pourquoi ne pas essayer de TPAACAudioConverter écrit par légendaire Michael Tyson?

  

TPAACAudioConverter est une simple classe Objective-C qui effectue la   conversion d'un fichier audio à un m4a codé AAC, de manière asynchrone   avec un délégué, ou convertit tout signal audio fourni par une classe de source de données   (Qui prévoit l'enregistrement directement à AAC).

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