mirror of
https://github.com/yattee/yattee.git
synced 2025-08-09 04:04:07 +00:00
Layout improvements
This commit is contained in:
14
macOS/Player.swift
Normal file
14
macOS/Player.swift
Normal 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) {}
|
||||
}
|
36
macOS/PlayerViewController.swift
Normal file
36
macOS/PlayerViewController.swift
Normal 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)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user