Swift Academy · Ders

Oynatıcıları SwiftUI'ye Yerleştirme

VideoPlayer ve özel oynatıcı görünümlerini kullanın.

4. ders / 413 adım

Oynatıcıları SwiftUI'ye Yerleştirme, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Swift Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Swift Academy kursu toplamda 4 dersten oluşur.

SwiftUI'da Video

SwiftUI, yerleşik denetimlerle medya oynatmayı bildirimsel olarak gömmek için AVKit içindeki VideoPlayer görünümünü sağlar.

import SwiftUI
import AVKit

VideoPlayer Görünümü

VideoPlayer, bir AVPlayer alır ve oynat, duraklat, ilerleme çubuğu ve tam ekran gibi standart oynatma denetimleriyle görüntüler.

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

Oynatıcıyı Durumda Tutma

AVPlayer nesnesini @State içinde saklayınız; böylece görünüm güncellemelerinden etkilenmez. Her body çağrısında yeniden oluşturulması oynatmayı yeniden başlatır.

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

Oynatmayı Denetleme

Ekran dışında sesin sürmesini önlemek için oynatmayı SwiftUI yaşam döngüsü değiştiricilerinden yönlendiriniz: görünüm belirdiğinde başlatınız, kaybolduğunda duraklatınız.

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

Üst Katman İçeriği

VideoPlayer başlatıcısı, video üzerinde katmanlanan özel arayüz (başlıklar, rozetler ve açıklamalar) için bir üst katman kapanışı kabul eder.

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

Oynatmayı Döngüye Alma

Öğe sonu bildirimini izleyip sıfıra geri konumlandırarak oynatmayı döngüye alınız. Kuyruk oynatıcısıyla birlikte bir AVPlayerLooper kullanmak da başka bir seçenektir.

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

Video için Ses Oturumu

Video sesinin doğru davranması için bir AVAudioSession yapılandırınız; böylece sesin sessize alma anahtarına uymasını veya isteğe bağlı olarak bu anahtarı yok sayıp çalmasını sağlayabilirsiniz.

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

UIViewRepresentable ile Özel Oynatıcılar

Tamamen özel bir arayüze (sistem denetimleri olmadan) ihtiyacınız olduğunda VideoPlayer kullanmak yerine bir AVPlayerLayer katmanını UIViewRepresentable içine sarınız.

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

Temel UIView

Özel UIView, bir AVPlayerLayer barındırır ve onu kendi sınırlarına göre yeniden boyutlandırır; böylece denetimsiz bir video yüzeyi elde edersiniz.

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() }
}

Resim İçinde Resim

Resim İçinde Resim için AVPictureInPictureController kullanarak bunu oynatıcı katmanınızla ilişkilendiriniz ve arka planda ses yeteneğini etkinleştiriniz.

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

Temizleme

Görünüm kaybolduğunda oynatıcıyı duraklatın ve gözlemcileri kaldırarak kaynakları serbest bırakın; istemeden çalan background sesini durdurun.

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

Hızlı Kontrol: SwiftUI Oynatıcıları

Oynatıcıları SwiftUI içine yerleştirme konusundaki anlayışınızı sınayın.

Özet: Oynatıcıları SwiftUI İçine Yerleştirme

AVKit’in VideoPlayer bileşeni, standart denetimlere sahip bir AVPlayer yerleştirir; kararlı bir örnek elde etmek için oynatıcıyı @State içinde tutun ve oynatma/duraklatma işlemlerini onAppear/onDisappear üzerinden yönetin. Son kapanışı kullanarak kaplamalar ekleyin ve bitiş bildiriminde döngüye alın.

Özel, denetimsiz oynatma için bir AVPlayerLayer katmanını UIViewRepresentable içine sarın ve görünüm kaybolduğunda gözlemcileri temizleyin.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Swift öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
122
Dersler
409

Sıkça Sorulan Sorular

“Oynatıcıları SwiftUI'ye Yerleştirme” dersi ücretsiz mi?

Evet — “Oynatıcıları SwiftUI'ye Yerleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Swift Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Swift Academy kursu toplamda 4 dersten oluşur.

“Oynatıcıları SwiftUI'ye Yerleştirme” dersinde ne öğreneceğim?

VideoPlayer ve özel oynatıcı görünümlerini kullanın. Swift Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Swift Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Swift Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Oynatıcıları SwiftUI'ye Yerleştirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Swift Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Swift Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. AVPlayer ile Medya Oynatma
  2. Ses Kaydetme
  3. AVAsset ve Composition
  4. Oynatıcıları SwiftUI'ye Yerleştirme
← Swift Academy Sayfasına Dön