Swift Academy · Ders

AVPlayer ile Medya Oynatma

Ses ve video varlıklarını akışla oynatın.

1. ders / 413 adım

AVPlayer ile Medya Oynatma, CoddyKit'te ücretsiz bir Swift Academy dersidir. Bu, 4 dersinin 1. 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.

Medya için AVFoundation

AVFoundation, zamana bağlı görsel-işitsel medyayla çalışmak için Apple tarafından sağlanan çatıdır: oynatma, yakalama, düzenleme ve dışa aktarma işlemlerini destekler.

Temel oynatma sınıfı AVPlayer sınıfıdır.

import AVFoundation

AVPlayer ve AVPlayerItem

AVPlayer oynatmayı denetlerken AVPlayerItem, oynatılan medyayı temsil eder ve durumunu izler. Öğenin temelinde bir AVAsset bulunur.

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

Başlatma ve Duraklatma

Oynatmayı play(), pause() ve seek(to:) ile denetleyiniz. Oynatma geçerli zamandan başlar.

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

Videoyu Görüntüleme

Videoyu UIKit içinde göstermek için bir görünümde AVPlayerLayer barındırınız. Katman, oynatıcının görsel çıktısını oluşturur.

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

Durumu İzleme

Bir AVPlayerItem, bir status bildirir. Medyanın readyToPlay durumuna ne zaman geldiğini veya failed olduğunu öğrenmek için bu durumu izleyiniz.

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

Zamanı İzleme

Oynatma ilerledikçe ilerleme arayüzünü güncellemek için addPeriodicTimeObserver kullanınız. Zamanlar CMTime değerleridir.

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

CMTime Temelleri

CMTime, örneklem düzeyinde hassasiyet sağlamak için zamanı rasyonel sayı olarak (değerin zaman ölçeğine bölümü) saklar. 600 zaman ölçeği, yaygın kare hızlarını tam olarak böler.

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

Kesin Konumlandırma

Sıfır toleransla kullanılan seek(to:toleranceBefore:toleranceAfter:), daha fazla kod çözme çalışması karşılığında kare hassasiyetinde konumlandırma sağlar.

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

Sona Ulaşma

Tamamlanmayı algılamak için AVPlayerItem.didPlayToEndTimeNotification bildirimini izleyiniz; ardından döngüye alabilir, kapatabilir veya sonraki öğeyi gösterebilirsiniz.

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

Oynatma için Ses Oturumu

Sesin doğru şekilde oynatılması ve yapılandırıldığında arka planda sürdürülmesi için uygun kategoriyle bir AVAudioSession ayarlayınız.

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

Oynatma Listeleri için AVQueuePlayer

AVQueuePlayer, öğelerden oluşan bir kuyruğu sırayla oynatmak üzere AVPlayer sınıfından türetilmiştir; oynatma listeleri ve kesintisiz video akışları için idealdir.

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

Hızlı Kontrol: AVPlayer

AVPlayer oynatmayla ilgili anlayışınızı sınayınız.

Özet: AVPlayer ile Medya Oynatma

AVPlayer, temelinde bir AVAsset bulunan AVPlayerItem öğesinin oynatılmasını yönetir; videoyu AVPlayerLayer oluşturur. Öğe status değerini izleyiniz, ilerlemeyi periyodik CMTime gözlemcileriyle takip ediniz, sıfır toleransla kesin konumlandırma yapınız ve oynatma sonu bildirimlerini işleyiniz.

Doğru ses için bir AVAudioSession yapılandırınız ve oynatma listeleri için AVQueuePlayer kullanınız.

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

“AVPlayer ile Medya Oynatma” dersi ücretsiz mi?

Evet — “AVPlayer ile Medya Oynatma” 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.

“AVPlayer ile Medya Oynatma” dersinde ne öğreneceğim?

Ses ve video varlıklarını akışla oynatı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 1. dersidir.

“AVPlayer ile Medya Oynatma” 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