AVPlayer ile Medya Oynatma
Ses ve video varlıklarını akışla oynatın.
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 AVFoundationAVPlayer 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.
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
- AVPlayer ile Medya Oynatma
- Ses Kaydetme
- AVAsset ve Composition
- Oynatıcıları SwiftUI'ye Yerleştirme