mirror of
https://github.com/yattee/yattee.git
synced 2024-12-23 05:53:41 +00:00
35 lines
1.1 KiB
Swift
35 lines
1.1 KiB
Swift
|
import AVKit
|
||
|
import Foundation
|
||
|
|
||
|
final class MacOSPiPDelegate: NSObject, AVPlayerViewPictureInPictureDelegate {
|
||
|
var playerModel: PlayerModel { .shared }
|
||
|
|
||
|
func playerViewShouldAutomaticallyDismissAtPicture(inPictureStart _: AVPlayerView) -> Bool {
|
||
|
false
|
||
|
}
|
||
|
|
||
|
func playerViewWillStartPicture(inPicture _: AVPlayerView) {
|
||
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in
|
||
|
self?.playerModel.playingInPictureInPicture = true
|
||
|
self?.playerModel.hide()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func playerViewWillStopPicture(inPicture _: AVPlayerView) {
|
||
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in
|
||
|
self?.playerModel.playingInPictureInPicture = false
|
||
|
self?.playerModel.show()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func playerView(
|
||
|
_: AVPlayerView,
|
||
|
restoreUserInterfaceForPictureInPictureStopWithCompletionHandler completionHandler: (Bool) -> Void
|
||
|
) {
|
||
|
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in
|
||
|
self?.playerModel.show()
|
||
|
}
|
||
|
completionHandler(true)
|
||
|
}
|
||
|
}
|