【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 で、動画を表示するコンポーネントを用意してくれないのだろうか。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA