Frage

Ich habe eine harte Zeit versucht, etwas anderes als lineare PCM auf dem iPhone aufnehmen :-( Die Proben, die ich gefunden habe (SDK SpeakHere, Zdziarski sind und Sadun Bücher und derjenige bei trailsinthesand.com) verwenden all linear PCM, aber ich würde stattdessen ein häufig verwendetes komprimiertes Format wie (keinen IMA4 oder was auch immer der Name ist ...).

Ich kann einfach nicht herausfinden, wie Sie den Beispielcode zwicken mit verwendet werden, zum Beispiel AAC, MP3 oder AMR statt. Irgendwelche Vorschläge und Hinweise, wie das zu tun, sind sehr willkommen!

(Btw, ich glaube nicht, ein MP3-Encoder noch AMR-Kodierer aus Lizenzgründen zur Verfügung stehen, aber AAC nicht vorhanden ist, oder ???)

Bearbeiten / Update: ich auf den folgenden Text stolperte in Apples "iPhone Application Programming Guide", 2009-01-06, Seite 137, Abschnitt: Recording Audio:
Bevorzugte Audio-Formate in iPhone OS „(Seite 140)‚ und als bevorzugte Audio-Formate auf Seite 140‘Sie können in Audio in jeden der aufgeführten Formate aufnehmen“: „Für komprimiertes Audio wenn einen Ton zu einem Zeitpunkt, zu spielen, und wenn Sie müssen nicht Audio gleichzeitig mit der iPod-Anwendung zu spielen, das AAC-Format in einer CAF oder m4a-Datei verpackt verwenden. "
So interpretiere ich das als ein klares Indiz dafür, dass es in der Tat, nicht nur möglich, sondern sogar bevorzugt, Audio in AAC-Format in einer Datei m4a verpackt aufnehmen, die genau das, was ich will. Aber noch, ich bin nicht in der Lage, dies zu erreichen?!

Danke, / John

War es hilfreich?

Lösung

Halten Sie an diesem docs suchen. In "Core Audio Essentials", die im Abschnitt "Core Audio-Plug-In: Audio Units und Codecs" stellt fest, dass:

  

iPhone OS enthält die Aufnahme   Codecs in Tabelle 2-5 aufgeführt. Wie du kannst   sehen, weder MP3 noch AAC-Aufnahme   verfügbar. Dies ist aufgrund der hohen CPU   Overhead und die daraus folgende Batterie   Drain dieser Formate.

Tabelle 2-5 listet verschiedene Formate, sondern als die Text-Notizen nicht enthalten die, die Sie suchen. Wenn Sie diese Formate möchten, müssen Sie haben Ihren eigenen Encoder zu bringen.

Andere Tipps

Es ist möglich, in iPhone 3GS und iPod 2. Generation und höher. Sie haben eine Hardware enconder für AAC. Es ist ein Apple-Beispielprojekt für das, das tut genau das, was Sie tun mögen:

iPhoneExtAudioFileConvertTest

Ein Tipp für faac mit von iPhone-Ausgabe Linear-PCM-Dateien in der AAC-Format zu konvertieren:

Ich fand durch Experimente, dass Sie die -X Flagge auf der Kommandozeilen-Version von faac (läuft auf Mac OS X) zu verwenden, das „tauscht das Eingangsbytes.“ (Ich denke, es ändert sich die Bytereihenfolge.)

So zum Beispiel, wenn Sie Audio-Datei linear.pcm auf Ihrem iPhone aufgenommen, könnten Sie dann ausführen:

faac -XP linear.pcm

auf Ihrem Mac, die in die aac-Datei linear.aac zu konvertieren.

Ich vermute, dies bedeutet, dass Sie vielleicht in der Lage sein faac in Ihrer App verwenden, um die Konvertierung zu tun, wenn man wollte, da es sich um eine C-Bibliothek ist.

Beachten Sie auch, dass, technisch gesehen, ist die Dateien Ausgabe von iPhone-Audio-Diensten in der Regel CAF-Dateien, Core Audio-Format, die sich um eine Reihe von möglichen Kodierungen Art von Wrapper-Format ist: Apples docs auf CAF . Die obige Befehlszeile funktioniert gut für mich, obwohl linear.pcm mit dem caff Header beginnt.

Haben Sie versucht, Lame MP3-Encoder? Oder faac / faad AAC-Codecs? Sie können sie in ffmpeg rel="nofollow.

Warum versuchen Sie nicht, TPAACAudioConverter geschrieben von dem legendären Michael Tyson?

  

TPAACAudioConverter ist eine einfache Objective-C-Klasse, die das führt   Umwandlung jeder Audiodatei in einer AAC-codierten M4A, asynchron   mit einem Delegierten oder wandelt jede Audiodatenquelle durch eine Klasse bereitgestellt   (Das sieht gerade in der AAC-Aufnahme).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top