Merhabalar bu yazımda sizlere güzel bir örnek vereceğim. Bu sayede İOS uygulamalarınızda videonun içerisinden ekran görüntüsü nasıl alınır görmüş olacağız.
Video Snapshot nedir ? bundan bahsedecek olursam. Bu olay videonun her hangi bir anında o anın fotoğrafını çekmeniz demektir. Bu olay tüm sosyal medyalarda sistemlerde kullanılmakta bildiğiniz gibi video için kapak fotoğrafı seçiyoruz. Bu işlem vereceğim örnek ile yapılmakta.
Bunun için AVFoundation kütüphanesinin marifetlerinden yararlanacağız.
Aşağıdaki verdiğim örneği inceleyelim.
func videoSnapshot(path filePathLocal: String,shotTime:Double) -> UIImage? { let vidURL = NSURL(fileURLWithPath: filePathLocal) let asset = AVURLAsset(URL: vidURL) let generator = AVAssetImageGenerator(asset: asset) generator.appliesPreferredTrackTransform = true let timestamp = CMTime(seconds: shotTime, preferredTimescale: 60) do { let imageRef = try generator.copyCGImageAtTime(timestamp, actualTime: nil) return UIImage(CGImage: imageRef) } catch let error as NSError { print("ss failed \(error)") return nil } }
imgview.image = videoSnapshot(path: "/Users/kenan/Desktop/LayersTest/vid.mp4", shotTime: 3.0)
Not: Ben burada pc üzerinden video yolunu verdim, siz uygulama yazarken videoyu kaydettiğiniz path‘i vermeniz gerekli.
Yukardaki yazdığım fonksiyon ile video yolunu ve dilediğiniz saniyenin görüntüsünü almak için shotTime girdiğiniz zaman size o anın görüntüsünü döndürecektir. AVAsset sınıfıyla çoğu video işleme olayları yapılmakta çok yararlı bir sınıf.
Güzel bir örnek 👍🏻