Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Techniken: iPhone Multimedia Universität zu Köln Re-usable Content in 3D Johannes Döhrn SS 2012.

Ähnliche Präsentationen


Präsentation zum Thema: "Techniken: iPhone Multimedia Universität zu Köln Re-usable Content in 3D Johannes Döhrn SS 2012."—  Präsentation transkript:

1 Techniken: iPhone Multimedia Universität zu Köln Re-usable Content in 3D Johannes Döhrn SS 2012

2 Audio SystemSounds AVAudioPlayer Audioaufnahme AudioToolbox Video MediaPlayer Videoaufnahme MediaKit Filme auswählen und bearbeiten MPMediaPickerController MPMusicPlayerController Inhalt

3 Audio -Gebrauch in Applications -Soundeffekte (Klicks, Warnungen, andere kurze Sounds) -Musik, Podcasts, Hörbücher etc. -Streams aus dem Internet -Aufgenommene Audioinhalte

4 Audio CoreAudio: -Einfacher Gebrauch: -System Sound API – kurze Soundgeräusche -AVAudioPlayer – ObjC, simple API -Komplex, aber mit besseren Controls: -AudioToolbox – aufnehmen und abspielen, Streaming -AudioUnits – komplexe Audio-Plug-Ins zum Bearbeiten von Audio-Dateien (Filterung, Hall, Sampling, MIDI-basierte Synthesizer etc.) -OpenAL – 3D Sound (z.B. bei Ego-Shootern)

5 Xcode: Vor dem Start… Disable Automatic Reference Counting (ARC) -Project/Build Settings/Levels -> in die Suchleiste automatic eingeben/ARC von YES auf NO Frameworks hinzufügen: - Project Navigator / Project / Build Phases / Link Binary With Libraries –> Add (+) -> AVFoundation.framework; AudioToolbox.framwork; MediaPlayer.framework

6 Audio System Sound API -Kurze Soundgeräusche (> 5 sec) -Sehr simple API, aber -Keine Schleifenwiedergabe -Keine Handhabung der Lautstärke -Umgehendes Playback -Nur wenige unterstützte Formate -Linear PCM oder IMA4 -.caf-,.aif-, oder.wav-Dateien -Code: NSURL *dateiURL =... // url zu der Datei SystemSoundID myID; // Sound initialisieren AudioServicesCreateSystemSoundID ((CFURLRef)dateiURL, &myID); // Dann abspielen AudioServicesPlaySystemSound (myID);

7 Audio System Sound API -Aufräumen: -Wenn abgespielt oder eine Warnung auftritt, abbrechen -Code: SystemSoundID myID; //abbrechen des zuvor initialisierten Sounds AudioServicesDisposeSystemSoundID (myID); Vibration -Erlaubt das Auslösen der Vibration - (void) vibrate { AudioServicesPlaySystemSound (kSystemSoundID_Vibrate); }

8 Audio AVAudioPlayer -Ermöglicht das Abspielen längerer Sounds -Lokal gespeicherte Daten (kein Streaming) -Ermöglicht Schleifenwiedergabe, bestimmen und wählen der Wiedergabeposition, Play, Pause -Audiopegel können überwacht werden -Gleichzeitige Wiedergabe mehrerer Sound-Daten -Cocoa-basiertes Interface -Initialisierung über Datei-URL oder Daten -Ermöglicht die Delegation zwischen Objekten -Unterstützt viele Audio-Formate

9 Audio AVAudioPlayer: -Initialisierung self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:self.path] error:&error]; if (!self.player) { [error localizedDescription]); return NO; } -Einfache Methoden zum Starten/Stoppen If (!self.player.playing) { [self.player play]; } else { [self.player pause]; }

10 Audio AVAudioPlayer: -Vorbereitung des Players, um mit der Wiedergabe beginnen zu können [self.player prepareToPlay] -Vollständiges Beenden der Wiedergabe durch self.player stop -Audiopegel: -Einrichten der Eigenschaft meteringEnabled = YES; -Aktualisierung der Pegelstände durch updateMeters -> ablesen der Stände durch peakPowerForChannel und averagePowerForChannel -Die Lautstärke wird mit der Eigenschaft volume ermittelt - (void) setVolume: (id) sender //Anpassung der Lautstärke bei Betätigung des Reglers { if (self.player) self.player.volume = volumeSlider.value; }

11 Audio AVAudioPlayer: -Wiedergabeposition bestimmen und wählen -Eigenschaften currentTime und duration self.player.currentTime = scrubber.value * self.player.duration; // Positionswahl durch UISlider -Nach Ende der Bewegung des Slider, wird Wiedergabe an der gewählten Position wieder aufgenommen - (void) scrubbingDone: (id) sender { [self play:nil]; } -Ende der Wiedergabe -Delegierungs-Callback audioPlayerDidFinishPlaying:successfully -Bsp. -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15- Media/01-Play%20Audiohttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15- Media/01-Play%20Audio

12 Audio Schleifenwiedergabe: -Ermöglicht das Gestalten von Hintergrundgeräuschen, durch Schleifenwiedergabe (self.player setNumberOfLoops) -Fading-Effekt -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/02-Audio%20Loophttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/02-Audio%20Loop Unterbrechungen: -z.B. bei Eingang eines Telefonats, Gerät übernimmt -Audiositzung wird deaktiviert (audioPlayerBeginInteruption) -Wird das Telefonat abgelehnt oder endet, bevor der Benutzer antworten konnte, wird die Wiedergabe wieder aufgenommen (audioPlayerEndInteruption) -Die Aktuelle Abspielposition kann gespeichert werden -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/03- Audio%20Interruptionshttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/03- Audio%20Interruptions

13 Audio Audioaufnahme: -Einrichtung einer AVAudioSession -Verwenden einer Aufnahmesitzung ( AVAudioSessionCategoryRecord ) o. Wiedergabe- und Aufnahme ( AVAudioSessionCategoryPlayAndRecord ) -Aufnahme -Aufnahmeeinstellungen, die beschreiben, wie die Aufnahme erfasst werden soll -z.B. AudioFormat, Sample-Rate (Abtastvorgänge), Kanäle (mono, stereo) etc. -Initialisierung des zugewiesenen Recorders durch Datei-URL und Dictionary -Initialisierung der Delegierung, Pegelmessung etc. -Einrichten eines Timers zur Beobachtung der Pegel und der Aufnahmeposition

14 Audio Audioaufnahme: -Audiometer (updateMeters) funktioniert wie beim AVAudioPlayer -Durch stopRecording wird audioRecorderDidFinishRecording:successfully ausgelöst und die Oberfläche für die Wiedergabe bereitgemacht -Bsp. -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15- Media/05-Record%20Audiohttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15- Media/05-Record%20Audio

15 Audio AudioToolbox: - Audio File Stream Services & Audio Queue Services -Unterstützt eine größere Anzahl von Formaten -Bessere Kontrolle über die Wiedergabe -z.B. Streaming von Audio über ein Netzwerk Queue: -Ermöglicht die Aneinanderreihung von Audio-Dateien in einer Warteschlange -Spezifiziert, welcher Song wann gespielt werden soll -Bsp. iPod (Playlist) -Ermöglicht Aufnahme -Leistungsfähige, systemnahe, aufwendige Audioroutinen

16 Audio Audioaufnahme: -Erstelle eine Queue -Definiere eine callback-Funktion um das Aufgenommene zu erhalten -Starte die Queue -Speicherung der erhaltenen Daten -Beende die Queue Bsp: -Speak Here (iOS Dev Center) -https://github.com/erica/iphone-3.0-cookbook- /blob/b8ca8905d a0917e1dcd407d /C15-Media/06- AudioQueue%20Recordinghttps://github.com/erica/iphone-3.0-cookbook- /blob/b8ca8905d a0917e1dcd407d /C15-Media/06- AudioQueue%20Recording

17 Video Gebrauch von Video: -Szenische Animationen in einem Spiel -Stream-Inhalte aus dem Internet -Abspielen lokaler Videos MediaPlayer: -Abspielen von Videos über application bundle oder URL -Player immer Full Screen -Maßstab kann konfiguriert werden -Optionale controls -Unterstützt: -.mov,.mp4,.m4v,.3gp -Bsp. -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/07- OffsiteVideohttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/07- OffsiteVideo

18 Video MPMoviePlayerController: -Gehört zum Framework MediaPlayer -(id)initWithContentURL:(NSURL *)url; -(void)play; -(void)stop; -Eigenschaften: -backgroundColor (u.a. clear) -scalingMode – aspect fit, aspect fill, fill, no scaling -movieControlMode – default, volume only, hidden -Notifikationen: -MPMoviePlayerPlaybackDidFinishNotification (bei Ende der Wiedergabe oder Done) -Video ist bereit zu starten -Änderungen des Maßstabs

19 Video Videoaufnahme: -Überprüfung, ob Kamera vorhanden - (BOOL) videoRecordingAvailable { if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) return NO; return [[UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera] } -Videoaufzeichnung ähnelt Aufnahme von Einzelbildern -Zuweisung und Initialisierung eines Bild-Pickers -Einrichtung seiner Delegierung -Auswahl, ob Bearbeitung und Darstellung

20 Video Videoaufnahme: -Festlegung von Eigenschaften im Videorecorder: -Bildqualität (ipc.videoQuality) -Maximale Filmdauer in Sekunden (ipc.videoMaximumDuration) -Medientyp-Array: eine Liste mit dem Objekt public.movie -Eventuell auch public.image, um zwischen Video und Bild zu wechseln - (void) recordVideo: (id) sender { UIImagePickerController *ipc = [[UIImagePickerController alloc] init]; ipc.sourceType = UIImagePickerControllerSourceTypeCamera; ipc.delegate = self; ipc.allowsEditing = YES; ipc.videoQuality = UIImagePickerControllerQualityTypeMedium; ipc.videoMaximumDuration = 30.0f; // 30 seconds ipc.mediaTypes = [NSArray // ipc.mediaTypes = nil]; [self presentModalViewController:ipc animated:YES]; }

21 Video Videoaufnahme: -Speicherung: -didFinishSavingWithError überprüft, ob Fehler vorhanden -Falls nicht, kann die Datei mit der Funktion UISaveVideoAtPathToSavedPhotosAlbum() gespeichert werden. -Bsp: -https://github.com/erica/iphone-3.0-cookbook- /blob/b8ca8905d a0917e1dcd407d /C15- Media/08-RecordingVideohttps://github.com/erica/iphone-3.0-cookbook- /blob/b8ca8905d a0917e1dcd407d /C15- Media/08-RecordingVideo

22 Video Auswählen und Bearbeiten: -Erstellung eines reinen Video-Pickers (s. Videorecorder) -Überprüfung, ob das Video bearbeitet werden kann (Methode canEditVideoAtPath der Klasse UIVideoEditorController ) -Wenn ja, neuer Editor weist Eigenschaften delegate und videoPath zu -Callbacks zum Handhaben für den Erfolg / Fehlschlag des Vorgangs oder den Abbruch durch den Benutzer -Nach Beendigung der Bearbeitung, Speicherung (videoEditorController:didSaveEditedVideoToPath) -Bsp: -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15- Media/09-Editing%20Videohttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15- Media/09-Editing%20Video

23 Audioauswahl MPMediaPickerController: -Ermöglicht Auswahl von Elementen, wie Musikstücke, Podcasts und Hörbüchern aus der Musikbibliothek -Oberfläche im iPod-Stil (z.B. Durchsuchen von Wiedergabelisten, Listen von Künstlern und Songs, Alben etc.) -Erstellung eines neuen Pickers; Initialisierung mit gewünschtem Medientyp (MPMediaTypeMusic, MPMediaTypePodcast, _Audio, _AnyAudio, _Any) MPMediaPickerController *mpc = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic]; mpc.delegate = self; mpc.prompt select an item"; mpc.allowsPickingMultipleItems = YES; [self presentModalViewController:mpc animated:YES];

24 Audioauswahl MPMediaPickerController: -Benutzerauswahl abschließen: -Callback mediaPicker:didPickMediaItems -Instanz MPMediaItemCollection: -Kann durch Zugriff auf ihre Elemente aufgelistet werden. -Jedes Element (Item) ist ein Member der Klasse MPMediaItem -Eigenschaften (Property) von MPMediaItem können abgefragt werden (z.B. MPMediaItemPropertyTitle, MPMediaItemPropertyArtist etc.) -Bsp. -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/10- Media%20Pickerhttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/10- Media%20Picker

25 Medienabfragen MPMediaQuery: -Filterung der Inhalte einer iPod-Bibliothek und Einschränkung des Suchbereichs -9 vordefinierte Suchvorgänge (z.B. albumsQuery, artistsQuery) -Dazugehörige Gruppierungstypen legen die Gliederung der zurückgegebenen Daten fest (z.B. MPMediaGroupingAlbum) -Beispiel einer Abfrage (hier: Anzahl der Alben) MPMediaQuery *query = [MPMediaQuery albumsQuery]; NSArray *collections = query.collections; have %d albums in your library\n", collections.count); -Prädikate: -Prädikate aus Medieneigenschaften filtern die zurückgegebenen Elemente -Bsp. -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/11- Media%20Queryhttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/11- Media%20Query

26 Audio MPMusicPlayerController: -Ein weiterer komplexer Musik-Player für Musiksammlungen -Veröffentlicht optionale Benachrichtigungen, wenn sich der Wiedergabestatus ändert -Ermöglicht zufällige Reihenfolge bei Wiedergabe (Eigenschaft shuffleMode); Wiederholungsmodus (repeatMode) -Ermöglicht das Anzeigen von Grafiken aus einem Album (MPMediaItemArtwork) -Bsp. -https://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/12- Pick%20and%20Playhttps://github.com/erica/iphone-3.0-cookbook- /tree/b8ca8905d a0917e1dcd407d /C15-Media/12- Pick%20and%20Play

27 Quellen -Sadun, Erica: Das große iPhone Entwicklerbuch. München Codes: cookbook-http://github.com/erica/iphone-3.0- cookbook- -Audio APIs, Video Playback, Displaying Web Content, Settings, von Alan Cannistraro (Stanford University) -Speak Here, iOS Developer Library. https://developer.apple.com/library/ios/#samplecode /SpeakHere/Introduction/Intro.html#//apple_ref/doc/ uid/DTS


Herunterladen ppt "Techniken: iPhone Multimedia Universität zu Köln Re-usable Content in 3D Johannes Döhrn SS 2012."

Ähnliche Präsentationen


Google-Anzeigen