Swift Academy · Lektion

Medien mit AVPlayer abspielen

Streamen und spielen Sie Audio- und Videodateien ab.

Lektion 1 von 413 Schritte

Medien mit AVPlayer abspielen ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

AVFoundation für Medien

AVFoundation ist Apples Framework für die Arbeit mit zeitbasierten audiovisuellen Medien – Wiedergabe, Aufnahme, Bearbeitung und Export.

Die zentrale Klasse für die Wiedergabe ist AVPlayer.

import AVFoundation

AVPlayer und AVPlayerItem

AVPlayer steuert die Wiedergabe, während AVPlayerItem die abgespielten Medien repräsentiert und deren Zustand verfolgt. Dem Item liegt ein AVAsset zugrunde.

let url = URL(string: "https://example.com/video.mp4")!
let item = AVPlayerItem(url: url)
let player = AVPlayer(playerItem: item)

Wiedergabe starten und pausieren

Steuern Sie die Wiedergabe mit play(), pause() und seek(to:). Die Wiedergabe beginnt ab der aktuellen Zeit.

player.play()
// later
player.pause()

Video anzeigen

Um ein Video in UIKit anzuzeigen, binden Sie einen AVPlayerLayer in eine View ein. Der Layer rendert die visuelle Ausgabe des Players.

let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = view.bounds
playerLayer.videoGravity = .resizeAspect
view.layer.addSublayer(playerLayer)

Status beobachten

Ein AVPlayerItem meldet einen status. Beobachten Sie ihn, um zu erkennen, wann die Medien readyToPlay sind oder failed ist.

let observation = item.observe(\.status) { item, _ in
    if item.status == .readyToPlay {
        player.play()
    }
}

Zeit verfolgen

Verwenden Sie addPeriodicTimeObserver, um eine Fortschrittsanzeige während des Abspielens zu aktualisieren. Zeiten werden als CMTime-Werte dargestellt.

let interval = CMTime(seconds: 0.5, preferredTimescale: 600)
player.addPeriodicTimeObserver(forInterval: interval, queue: .main) { time in
    let seconds = time.seconds
    print("at \(seconds)s")
}

Grundlagen von CMTime

CMTime speichert Zeit als rationale Zahl (Wert geteilt durch Zeitskala) und ermöglicht dadurch eine samplegenaue Präzision. Eine Zeitskala von 600 lässt sich ohne Rest durch gängige Bildraten teilen.

let t = CMTime(seconds: 5, preferredTimescale: 600)
let half = CMTimeMultiplyByFloat64(t, multiplier: 0.5)

Präzise suchen

seek(to:toleranceBefore:toleranceAfter:) mit einer Toleranz von null ermöglicht eine bildgenaue Suche, erfordert jedoch mehr Decodierungsarbeit.

let target = CMTime(seconds: 30, preferredTimescale: 600)
player.seek(to: target, toleranceBefore: .zero, toleranceAfter: .zero)

Das Ende erreichen

Beobachten Sie AVPlayerItem.didPlayToEndTimeNotification, um den Abschluss zu erkennen – anschließend können Sie die Wiedergabe wiederholen, das Element schließen oder das nächste Element anzeigen.

NotificationCenter.default.addObserver(
    forName: .AVPlayerItemDidPlayToEndTime,
    object: item, queue: .main) { _ in
    player.seek(to: .zero)
    player.play() // loop
}

Audio-Session für die Wiedergabe

Damit Audio korrekt wiedergegeben und bei entsprechender Konfiguration im Hintergrund fortgesetzt wird, richten Sie eine AVAudioSession mit der passenden Kategorie ein.

let session = AVAudioSession.sharedInstance()
try? session.setCategory(.playback)
try? session.setActive(true)

AVQueuePlayer für Wiedergabelisten

AVQueuePlayer leitet sich von AVPlayer ab und spielt eine Warteschlange von Elementen nacheinander ab – ideal für Wiedergabelisten und kontinuierliche Video-Feeds.

let queue = AVQueuePlayer(items: [item1, item2, item3])
queue.play()

Schnelltest: AVPlayer

Testen Sie Ihr Verständnis der Wiedergabe mit AVPlayer.

Zusammenfassung: Medien mit AVPlayer abspielen

AVPlayer steuert die Wiedergabe eines AVPlayerItem, dem ein AVAsset zugrunde liegt; ein AVPlayerLayer rendert das Video. Beobachten Sie den status des Items, verfolgen Sie den Fortschritt mit periodischen CMTime-Beobachtern, suchen Sie mit einer Toleranz von null präzise und behandeln Sie Benachrichtigungen über das Ende der Wiedergabe.

Konfigurieren Sie eine AVAudioSession für die korrekte Audiowiedergabe und verwenden Sie AVQueuePlayer für Wiedergabelisten.

Kostenlos starten

Lerne Swift mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
122
Lektionen
409

Häufig gestellte Fragen

Ist die Lektion „Medien mit AVPlayer abspielen“ kostenlos?

Ja — der vollständige Text von „Medien mit AVPlayer abspielen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Medien mit AVPlayer abspielen“?

Streamen und spielen Sie Audio- und Videodateien ab. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Medien mit AVPlayer abspielen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Medien mit AVPlayer abspielen
  2. Audio aufnehmen
  3. AVAsset und Komposition
  4. Player in SwiftUI einbetten
← Zurück zu Swift Academy