İçeriğe geç

İOS Custom AVPlayerLayer yaratmak

İOS

Merhabalar bu yazımda nasıl Custom bir şekilde İOS uygulamanızda video oynatma ekranı yaratırız bunun örneğini vereceğim.

Normalde İOS üzerinden video oynatırken AVPlayerViewController sınıfını kullanırız buda bize video oynatmak için bir başka sayfayada videoyu oynatır. Sosyal medya uygulamalarındaki gibi boyutunu kendimizin belirlediği bir video oynama alanı yaratabiliriz. Bunun için AVPlayerLayer‘i kullanacağız.

Aşağıdaki vereceğim örnekte üstelik bu oynatma işlemini sürekli tekrar eder biçimde nasıl oynatırız. Örneğin instagramdaki videolar gibi bununda örneğini vermiş olacağım.

Aşağıdaki kodu inceleyebilirsiniz.

import UIKit
import AVFoundation

class videoVC: UIViewController {

    let avPlayer = AVPlayer()
    var avPlayerLayer: AVPlayerLayer!

    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        avPlayerLayer = AVPlayerLayer(player: avPlayer)
        avPlayerLayer.bounds = self.view.layer.bounds
        avPlayerLayer.frame = CGRectMake(0, 0, self.view.layer.frame.width,self.view.layer.frame.height)
        view.layer.addSublayer(avPlayerLayer)
        
        let url = NSURL(fileURLWithPath: "/Users/kenan/Desktop/LayersTest/vid.mp4")
        let playerItem = AVPlayerItem(URL: url)
        avPlayer.replaceCurrentItemWithPlayerItem(playerItem)
        
        avPlayer.play()
        
        loopVideo(avPlayer)
    }
    

    func loopVideo(videoPlayer: AVPlayer) {
        NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayToEndTimeNotification, object: nil, queue: nil) { notification in
            videoPlayer.seekToTime(kCMTimeZero)
            videoPlayer.play()
        }
    }

}

NSURL‘e yolunu verdiğim video sürekli olarak dahil edilen view açıldığında telefonun ekranını tamamını kaplayacak şekilde oynatılmış olacak. AVPlayerLayer üzerinden oynamalar yapabilirsiniz.

 

 

Tarih:iOS

Bu yazı yorumlara kapalı.

Copyright © 2020 Kenan Atmaca