【SwiftUI】AVPlayer を使って動画を再生してみた

SwiftUI で 動画を再生する方法がわからなかったので、調べてみた。

↓こちらのサイトを参考にしました。

stackoverflow.com

import SwiftUI
import AVKit

struct ContentView : View {
    var body: some View {
            PlayerView()
    }
}

struct PlayerView: NSViewRepresentable {
    func updateNSView(_ nsView: NSView, context: NSViewRepresentableContext<PlayerView>) {

    }
    func makeNSView(context: Context) -> NSView {
        return PlayerNSView(frame: .zero)
    }
}

class PlayerNSView: NSView{
    private let playerLayer = AVPlayerLayer()

    override init(frame:CGRect){
        super.init(frame: frame)        
        let urlVideo = URL(string: "https://【動画のURL】")!
        let player = AVPlayer(url: urlVideo)
        player.play()
        playerLayer.player = player
        if layer == nil{
            layer = CALayer()
        }
        layer?.addSublayer(playerLayer)
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    override func layout() {
        super.layout()
        playerLayer.frame = bounds
    }
}

SwiftUI で、動画を表示するコンポーネントを用意してくれないのだろうか。