     // MARK: - AVPlayerLayerObservers
     
     internal func addPlayerLayerObservers() {
-        self._playerView.layer.addObserver(self, forKeyPath: PlayerReadyForDisplayKey, options: [.new, .old], context: &PlayerLayerObserverContext)
+        if let playerVC = self._nativePlayerViewController {
+            playerVC.view.addObserver(self, forKeyPath: PlayerReadyForDisplayKey, options: [.new, .old], context: &PlayerLayerObserverContext)
+        } else {
+            self._playerView.layer.addObserver(self, forKeyPath: PlayerReadyForDisplayKey, options: [.new, .old], context: &PlayerLayerObserverContext)
+        }
     }
     
     internal func removePlayerLayerObservers() {
-        self._playerView.layer.removeObserver(self, forKeyPath: PlayerReadyForDisplayKey, context: &PlayerLayerObserverContext)
+        if let playerVC = self._nativePlayerViewController {
+            playerVC.view.removeObserver(self, forKeyPath: PlayerReadyForDisplayKey, context: &PlayerLayerObserverContext)
+        } else {
+            self._playerView.layer.removeObserver(self, forKeyPath: PlayerReadyForDisplayKey, context: &PlayerLayerObserverContext)
+        }
     }
     
     // MARK: - AVPlayerObservers

    // MARK: - Playback funcs

    open func playerViewSet(player: AVPlayer) {
        self._playerView.player = player
        self._playerView.playerIsHidden = false
    }

    /// Begins playback of the media from the beginning.

    ///
    /// - Returns: A UIImage of the player view.
    open func takeSnapshot() -> UIImage {
        if let playerVC = self._nativePlayerViewController {
            UIGraphicsBeginImageContextWithOptions(playerVC.view.frame.size, false, UIScreen.main.scale)
            playerVC.view.drawHierarchy(in: playerVC.view.bounds, afterScreenUpdates: true)
        } else {
            UIGraphicsBeginImageContextWithOptions(self._playerView.frame.size, false, UIScreen.main.scale)
            self._playerView.drawHierarchy(in: self._playerView.bounds, afterScreenUpdates: true)
        }
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image!
