         playerItem.addObserver(
             self,
             forKeyPath: playerItemLoadedTimeRangesKey,
-            options: ([.new]),
+            options: ([.initial, .new]),
             context: &self.observationContext
         )
 
         NotificationCenter.default.addObserver(
             self,
-            selector: #selector(playerItemDidPlayToEndTime(_:)),
+            selector: #selector(self.playerItemDidPlayToEndTime(_:)),
             name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
             object: playerItem
         )
         NotificationCenter.default.addObserver(
             self,
-            selector: #selector(playerItemPlaybackStalled(_:)),
+            selector: #selector(self.playerItemPlaybackStalled(_:)),
             name: NSNotification.Name.AVPlayerItemPlaybackStalled,
             object: playerItem
         )

        player.addObserver(
            self,
            forKeyPath: playerStatusKey,
            options: ([.new]),
            context: &self.observationContext
        )
        player.addObserver(
            self,
            forKeyPath: playerRateKey,
            options: ([.new]),
            context: &self.observationContext
        )


        self.playerView.playerLayer.addObserver(
            self,
            forKeyPath: playerLayerReadyForDisplayKey,
            options: [.initial, .new],
            context: &self.observationContext
        )
    }
