Suchen und Finden
Service
Infos und Kontakt
Kapitel 16 Audiodaten abspielen und aufzeichnen (S. 355-356)
Gestaltet sich die Videounterstützung im iPhone 3.0 recht zurückhaltend, ist die Audiounterstützung dagegen erstaunlich umfassend. Das Core Audio Framework bietet verschiedene Abstraktionsschichten an – von einer High-Level-API für Objective-C, die das Aufsetzen eines einfachen Audiorekorders oder eines Players, der mit Dateien in Ihrem Documents-Verzeichnis arbeitet, sehr einfach macht, bis hin zu Low- Level-C-APIs für das Streamen von Audio, durch die Sie direkt mit Raw- Audio-Samples arbeiten können. Auch hier gilt wieder die 80-20-Regel: Ein Großteil der Entwickler wird eine kleine, aber entscheidende Untermenge dieses Framework nutzen. Wir werden uns in diesem Kapitel größtenteils auf die Objective-C-Klassen konzentrieren, die für die wichtigsten Aufgaben genutzt werden: das Aufzeichnen und Abspielen lokaler Dateien.
16.1 Einen AVAudioRecorder erstellen
In Zeiten vor dem iPhone SDK 3.0 mussten Entwickler, die Audiodaten aufzeichnen wollten, mit der Audio Queue Services-API arbeiten (die später noch in Abschnitt 17.3, Überblick über Core Audio, auf Seite 397 beschrieben wird), einer prozeduralen C-API, die über Streams arbeitet. Sie erhielten Callbacks mit neu erfassten Audio-Samples und mussten diese mit einer anderen C-API für das Schreiben von Audiodateien abspeichern. Viele Leute haben sich darüber beschwert, dass das für solche eine einfache Aufgabe viel zu kompliziert sei.
Als Reaktion darauf bietet das iPhone SDK 3.0 nun eine viel einfacher zu verwendende Option an: die Klasse AVAudioRecorder als Teil des AVFoundation-Framework. Diese Klasse ermöglicht es Ihnen, ein Recorder- Objekt mit einer Ziel-URL, die das Ziel der Aufnahme sein soll, und ein paar Einstellungen zu erzeugen und dann einfach mit dem Aufzeichnen der Audiodaten zu beginnen. Dazu muss man lediglich Methoden wie record, pause und stop aufrufen. Natürlich ist es dann doch nicht so einfach – wie immer bei der Audioverarbeitung. Denn wir werden sehen, was wir bei den Optionen für die Audiokomprimierung berücksichtigen müssen, und zudem gibt es nur wenige Kombinationen aus Einstellungen, die tatsächlich funktionieren, aber für die meisten Leute ist dieser Weg trotzdem viel einfacher als der frühere.
Die Beispielanwendung aufsetzen
Um mit den Aufzeichnungs- und Wiedergabefähigkeiten der AVFoundation zu spielen, werden wir eine Beispielanwendung bauen, die Audiodaten in Dateien aufzeichnen kann (über das Mikrofon des Telefons oder des Headsets) und diese Dateien dann auch wieder abspielt. Wir werden dem Anwender eine Reihe von möglichen Audioformaten zur Auswahl geben, so dass wir die Vor- und Nachteile der einzelnen Formate kennenlernen können.
Die Beispielanwendung, die wir vorbereitet haben, ist eine der am weitesten ausgearbeiteten in diesem Buch. Wir beschreiben ihre wichtigsten Elemente, aber da wir den Fokus auf der Audioverarbeitung halten und keinen vierseitigen Ausflug in den Interface Builder unternehmen wollen, ist dies ein Fall, in dem es wirklich sinnvoller ist, den herunterladbaren Beispielcode zu nutzen, in dem wir AudioRecorderPlayerStarter als Basisprojekt mit dem fertig gebauten und verdrahteten GUI anbieten. Wenn Sie diese Anwendung tatsächlich von Grund auf selbst bauen wollen, sollten Sie bedenken, dass wir davon ausgehen, dass Sie alle #imports, Eigenschaften, Hilfsmethoden, IBActions und IBOutlets, die wir nicht explizit beschrieben haben, selber erzeugen können.
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion

























