【Xcode/Swift】動画をループ再生させるには

今回はプロジェクト内に取り込んだ動画ファイルをループ再生させる実装を解説します。

画面の背景で動画を再生させたい時とかに使える実装です。

動画ファイルの取り込み

テキトーに拡張子(.MOV)のファイルをプロジェクトに取り込む、置き場所はどこでもOKです。

コーディング

import UIKit
import AVFoundation

class HomeViewController: UIViewController {

    private var player = AVPlayer()

    override func viewDidLoad() {
        super.viewDidLoad()
        playVideo()
        self.player.play()
    }

    private func playVideo() {
        guard let path = Bundle.main.path(forResource: "<#ファイル名#>", ofType: "MOV") else { return }
        player = AVPlayer(url: URL(fileURLWithPath: path))
        let playerLayer = AVPlayerLayer(player: player)
        playerLayer.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: view.frame.size.height)
        playerLayer.videoGravity = .resizeAspectFill
        playerLayer.repeatCount = 0
        playerLayer.zPosition = -1
        view.layer.insertSublayer(playerLayer, at: 0)
        NotificationCenter.default.addObserver(forName: .AVPlayerItemDidPlayToEndTime, object: player.currentItem, queue: .main) { (_) in
            self.player.seek(to: .zero)
            self.player.play()
        }
    }

}

まとめ

今回は以上です、ループ動画を有効活用してアプリを華やかに出来るようにしていきましょう!