0Pricing
Swift Academy · Pelajaran

Menyematkan Pemutar dalam SwiftUI

Gunakan VideoPlayer dan view pemutar kustom.

Menyematkan Pemutar dalam SwiftUI adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Video di SwiftUI

SwiftUI menyediakan view VideoPlayer (dari AVKit) untuk menyematkan pemutaran media secara deklaratif, lengkap dengan kontrol bawaan.

import SwiftUI
import AVKit

View VideoPlayer

VideoPlayer menerima AVPlayer dan merendernya dengan kontrol pemutaran standar—putar, jeda, penggeser posisi, dan layar penuh.

struct PlayerScreen: View {
    let player = AVPlayer(url: URL(string: "https://example.com/v.mp4")!)
    var body: some View {
        VideoPlayer(player: player)
            .frame(height: 240)
    }
}

Menyimpan Player dalam State

Simpan AVPlayer dalam @State agar tetap bertahan saat view diperbarui. Membuatnya kembali pada setiap pemanggilan body akan memulai ulang pemutaran.

struct PlayerScreen: View {
    @State private var player = AVPlayer(
        url: URL(string: "https://example.com/v.mp4")!)
    var body: some View {
        VideoPlayer(player: player)
    }
}

Mengontrol Pemutaran

Kontrol pemutaran dari modifier siklus hidup SwiftUI: mulai saat muncul, jeda saat menghilang, agar audio tidak terus berjalan di luar layar.

VideoPlayer(player: player)
    .onAppear { player.play() }
    .onDisappear { player.pause() }

Konten Overlay

Inisialisator VideoPlayer menerima closure overlay untuk UI kustom yang dilapiskan di atas video—judul, lencana, dan teks.

VideoPlayer(player: player) {
    VStack {
        Spacer()
        Text("Live")
            .padding(6)
            .background(.red, in: Capsule())
    }
}

Mengulang Pemutaran

Lakukan pengulangan dengan mengamati notifikasi akhir item dan melakukan seeking kembali ke nol. AVPlayerLooper dengan queue player adalah pilihan lainnya.

.onAppear {
    NotificationCenter.default.addObserver(
        forName: .AVPlayerItemDidPlayToEndTime,
        object: player.currentItem, queue: .main) { _ in
        player.seek(to: .zero); player.play()
    }
}

Sesi Audio untuk Video

Konfigurasikan AVAudioSession agar audio video berperilaku dengan benar—mengikuti tombol bisu atau tetap diputar melaluinya sesuai kebutuhan.

try? AVAudioSession.sharedInstance().setCategory(.playback)

Player Kustom dengan UIViewRepresentable

Saat Anda memerlukan UI yang sepenuhnya kustom (tanpa kontrol sistem), bungkus AVPlayerLayer dalam UIViewRepresentable alih-alih menggunakan VideoPlayer.

struct PlayerLayerView: UIViewRepresentable {
    let player: AVPlayer
    func makeUIView(context: Context) -> UIView { PlayerUIView(player: player) }
    func updateUIView(_ uiView: UIView, context: Context) { }
}

UIView Pendukung

UIView kustom menampung AVPlayerLayer dan mengubah ukurannya agar sesuai dengan batasnya, sehingga memberi Anda permukaan video tanpa kontrol.

final class PlayerUIView: UIView {
    init(player: AVPlayer) {
        super.init(frame: .zero)
        let layer = AVPlayerLayer(player: player)
        layer.videoGravity = .resizeAspectFill
        self.layer.addSublayer(layer)
    }
    required init?(coder: NSCoder) { fatalError() }
}

Picture in Picture

Untuk Picture in Picture, gunakan AVPictureInPictureController dengan layer player Anda dan aktifkan kapabilitas audio latar belakang.

let pip = AVPictureInPictureController(playerLayer: playerLayer)
pip?.startPictureInPicture()

Membersihkan

Jeda pemutar dan hapus pengamat saat tampilan menghilang untuk membebaskan sumber daya serta menghentikan audio background yang tidak Anda inginkan.

.onDisappear {
    player.pause()
    // remove notification observers here
}

Pemeriksaan Singkat: Pemutar SwiftUI

Uji pemahaman Anda tentang menyematkan pemutar di SwiftUI.

Ringkasan: Menyematkan Pemutar di SwiftUI

AVKit VideoPlayer menyematkan AVPlayer dengan kontrol standar; pertahankan pemutar di @State agar instans tetap stabil, lalu kendalikan pemutaran atau jeda dari onAppear/onDisappear. Tambahkan lapisan melalui blok penutup terakhir, lalu ulangi pemutaran saat menerima notifikasi akhir.

Untuk pemutaran khusus tanpa kontrol, bungkus AVPlayerLayer dalam UIViewRepresentable, lalu hapus pengamat saat tampilan menghilang.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menyematkan Pemutar dalam SwiftUI” gratis?

Ya — teks lengkap “Menyematkan Pemutar dalam SwiftUI” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menyematkan Pemutar dalam SwiftUI”?

Gunakan VideoPlayer dan view pemutar kustom. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Menyematkan Pemutar dalam SwiftUI” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Memutar Media dengan AVPlayer
  2. Merekam Audio
  3. AVAsset dan Komposisi
  4. Menyematkan Pemutar dalam SwiftUI
← Kembali ke Swift Academy