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 AVKitView 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
- Memutar Media dengan AVPlayer
- Merekam Audio
- AVAsset dan Komposisi
- Menyematkan Pemutar dalam SwiftUI