Improve PiP close animation

This commit is contained in:
Arkadiusz Fal 2022-08-05 22:37:38 +02:00
parent a0088e5404
commit 152a79d44f

View File

@ -1,5 +1,6 @@
import AVKit import AVKit
import Foundation import Foundation
import SwiftUI
final class PiPDelegate: NSObject, AVPictureInPictureControllerDelegate { final class PiPDelegate: NSObject, AVPictureInPictureControllerDelegate {
var player: PlayerModel! var player: PlayerModel!
@ -45,16 +46,23 @@ final class PiPDelegate: NSObject, AVPictureInPictureControllerDelegate {
) { ) {
var delay = 0.0 var delay = 0.0
#if os(iOS) #if os(iOS)
if player.currentItem.isNil { if !player.presentingPlayer {
delay = 0.5 delay = 0.5
} }
if player.currentItem.isNil {
delay = 1
}
#endif #endif
if !player.currentItem.isNil, !player.musicMode { if !player.currentItem.isNil, !player.musicMode {
player?.show() player?.show()
} }
DispatchQueue.main.asyncAfter(deadline: .now() + delay) { DispatchQueue.main.asyncAfter(deadline: .now() + delay) { [weak self] in
withAnimation(.linear(duration: 0.3)) {
self?.player.playingInPictureInPicture = false
}
completionHandler(true) completionHandler(true)
} }
} }