Layout improvements

This commit is contained in:
Arkadiusz Fal
2021-08-02 01:01:24 +02:00
parent 66c8b647bf
commit 9c5e427c7b
10 changed files with 148 additions and 223 deletions

14
macOS/Player.swift Normal file
View File

@@ -0,0 +1,14 @@
import SwiftUI
struct Player: NSViewControllerRepresentable {
var video: Video!
func makeNSViewController(context _: Context) -> PlayerViewController {
let controller = PlayerViewController()
controller.video = video
return controller
}
func updateNSViewController(_: PlayerViewController, context _: Context) {}
}

View File

@@ -0,0 +1,36 @@
import AVKit
import SwiftUI
final class PlayerViewController: NSViewController {
var video: Video!
var player = AVPlayer()
var playerState: PlayerState! = PlayerState()
var playerView = AVPlayerView()
override func viewDidDisappear() {
playerView.player?.replaceCurrentItem(with: nil)
playerView.player = nil
playerState.player = nil
playerState = nil
super.viewDidDisappear()
}
override func loadView() {
guard playerState.player == nil else {
return
}
playerState.player = player
playerView.player = playerState.player
playerView.controlsStyle = .floating
playerView.showsFullScreenToggleButton = true
view = playerView
playerState.loadVideo(video)
}
}