AVKit ajout vidéo

AVKit ajout vidéo

Ajouter le fichier Mp4 au projet, dans un dossier Média par exemple.

Bien vérifier que la case "Add to targets" soit cochée :

Capture d’écran 2021-02-28 à 15.02.26.png

Importer "AVKit", créer une propriété de type "AVPlayer" , et un cadre pour la vidéo en propriété de type "AVPlayerLayer"

import UIKit
import AVKit

class ViewController: UIViewController {

    var videoPlayer: AVPlayer?
    var videoPlayerLayer: AVPlayerLayer?

Créer une méthode pour gérer la vidéo, le lecteur et le cadre :

func setupVideo() {

        // obtenir le chemin d'accès à la resource vidéo (avec le nom du fichier viéo : ici "BoatsSailing")
        let bundlePath = Bundle.main.path(forResource: "BoatsSailing", ofType: "mp4")
        guard bundlePath != nil else { return }

        //créer une url à partir du chemin
        let url = URL(fileURLWithPath: bundlePath!)

        //créer video player item
        let item = AVPlayerItem(url: url)

        //créer le lecteur
        videoPlayer = AVPlayer(playerItem: item)

        //créer le cadre
        videoPlayerLayer = AVPlayerLayer(player: videoPlayer)

        //ajuster taille
            //pour cadre au centre de l'écran
        videoPlayerLayer?.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)

            //pour video sur tout l'écran : très grand cadre, sur l'écran on voit le centre
        //videoPlayerLayer?.frame = CGRect(x: -self.view.frame.size.width*1.5, y: 0, width: self.view.frame.size.width*4, height: self.view.frame.size.height)

        //ajouter à la vue et lancer
        view.layer.insertSublayer(videoPlayerLayer!, at: 0)
        videoPlayer?.playImmediately(atRate: 0.3) //atRate détermine la vitesse de lecture

    }

Appeler cette méthode dans l'override de "viewWillAppear()" ou viewDidLoad()

override func viewWillAppear(_ animated: Bool) {
        setupVideo()
    }

ecran2.jpg