mirror of
https://github.com/yattee/yattee.git
synced 2025-08-05 02:04:07 +00:00
PiP and UI improvements
This commit is contained in:
28
macOS/PictureInPictureDelegate.swift
Normal file
28
macOS/PictureInPictureDelegate.swift
Normal file
@@ -0,0 +1,28 @@
|
||||
import AVKit
|
||||
import Foundation
|
||||
|
||||
final class PictureInPictureDelegate: NSObject, AVPlayerViewPictureInPictureDelegate {
|
||||
var playerModel: PlayerModel!
|
||||
|
||||
func playerViewShouldAutomaticallyDismissAtPicture(inPictureStart _: AVPlayerView) -> Bool {
|
||||
false
|
||||
}
|
||||
|
||||
func playerViewWillStartPicture(inPicture _: AVPlayerView) {
|
||||
playerModel.playingInPictureInPicture = true
|
||||
playerModel.presentingPlayer = false
|
||||
}
|
||||
|
||||
func playerViewWillStopPicture(inPicture _: AVPlayerView) {
|
||||
playerModel.playingInPictureInPicture = false
|
||||
playerModel.presentPlayer()
|
||||
}
|
||||
|
||||
func playerView(
|
||||
_: AVPlayerView,
|
||||
restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void
|
||||
) {
|
||||
playerModel.presentingPlayer = true
|
||||
completionHandler(true)
|
||||
}
|
||||
}
|
@@ -4,18 +4,24 @@ import SwiftUI
|
||||
final class PlayerViewController: NSViewController {
|
||||
var playerModel: PlayerModel!
|
||||
var playerView = AVPlayerView()
|
||||
var pictureInPictureDelegate = PictureInPictureDelegate()
|
||||
|
||||
override func viewDidDisappear() {
|
||||
playerModel.pause()
|
||||
if !playerModel.playingInPictureInPicture {
|
||||
playerModel.pause()
|
||||
}
|
||||
super.viewDidDisappear()
|
||||
}
|
||||
|
||||
override func loadView() {
|
||||
playerView.player = playerModel.player
|
||||
pictureInPictureDelegate.playerModel = playerModel
|
||||
|
||||
playerView.allowsPictureInPicturePlayback = true
|
||||
playerView.showsFullScreenToggleButton = true
|
||||
|
||||
playerView.pictureInPictureDelegate = pictureInPictureDelegate
|
||||
|
||||
view = playerView
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user