                 return
             }
             
+            #if os(iOS)
+                if #available(iOS 9.0, *), isViewLoaded {
+                    if pictureInPictureController == nil,
+                        let layer = videoView?.playerLayer,
+                        let pipController = AVPictureInPictureController(playerLayer: layer) {
+                        pipController.delegate = self
+                        pictureInPictureController = pipController
+                    }
+                }
+                
+            #endif
+            
             let currentPlayer: AVPlayer
             
             if

            }
            
            #if os(iOS)
                guard #available(iOS 9.0, *), isViewLoaded else { return }
                
                let pipController: AVPictureInPictureController? = {
                    if let pipController = self.pictureInPictureController as? AVPictureInPictureController {
                        return pipController
                    } else {
                        guard
                            let layer = videoView?.playerLayer,
                            let pipController = AVPictureInPictureController(playerLayer: layer) else { return nil }
                        pipController.delegate = self
                        pictureInPictureController = pipController
                        pictureInPictureObserver = PictureInPictureControllerObserver(pictureInPictureController: pipController, emit:
                            { [unowned self] in
                                guard case PictureInPictureControllerObserver.Event.didChangedPossibility(let possible) = $0 else { return }
                                self.dispatch?(.pictureInPictureIsPossible(possible))
                        })
                        return pipController
                    }
                }()
                
                if props.pictureInPictureActive && pipController?.isPictureInPictureActive == false {
                    pipController?.startPictureInPicture()
                }
                
                if !props.pictureInPictureActive && pipController?.isPictureInPictureActive == true {
                    pipController?.stopPictureInPicture()
                }
            #endif
        }

                    player: currentPlayer)
                player = currentPlayer
                seekerController = SeekerController(with: currentPlayer)
                
                if let pictureInPictureController = pictureInPictureController {
                    pictureInPictureObserver = PictureInPictureControllerObserver(
                        pictureInPictureController: pictureInPictureController,
                        emit: { [weak self] in
                            guard case .didChangedPossibility(let possible) = $0 else { return }
                            self?.dispatch?(.pictureInPictureIsPossible(possible))
                    })
                }
            }
            
            guard currentPlayer.currentItem?.status == .readyToPlay else { return }
