if AVPictureInPictureController.isPictureInPictureSupported(), let player = self.player{
let layer = AVPlayerLayer.init(player: player);
self.pipController = AVPictureInPictureController.init(playerLayer: layer);
self.pipController?.delegate = self;
print("[\(#function)] create pip player[\(self.player?.description ?? "")] pip[\(self.pipController?.description ?? "")] allow]\(self.playerViewController.allowsPictureInPicturePlayback)]");
if self.pipController?.isPictureInPicturePossible ?? false{
self.pipController?.startPictureInPicture();
print("[\(#function)] start pip[\(self.pipController?.description ?? "")]");
}
self.pipObserver = self.pipController?.observe(\AVPictureInPictureController.isPictureInPicturePossible, options: [.new], changeHandler: { (pip, change) in //.initial,
print("[\(#function)] isPictureInPicturePossible[\(change.newValue.debugDescription ?? "")]");
});
//
}
=>
[startPlayingInPIP()] create pip player[<AVPlayer: 0x281a7f920>] pip[<AVPictureInPictureController: 0x283ce5020>] allow]true]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(true)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(false)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(true)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(false)]
....
[startPlayingInPIP()] isPictureInPicturePossible[Optional(true)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(false)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(true)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(false)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(true)]
[startPlayingInPIP()] isPictureInPicturePossible[Optional(false)]
what's this??