     #endif
 
     @objc internal func addObservers() {
+        view.addObserver(self, forKeyPath: "bounds",
+                         options: .new, context: &kvoViewBounds)
+
         player?.addObserver(self, forKeyPath: "currentItem.status",
                             options: .new, context: &kvoStatusDidChangeContext)
         player?.addObserver(self, forKeyPath: "currentItem.loadedTimeRanges",

        fatalError("init(context:) has not been implemented")
    }

    open override func layoutSubviews() {
        if let playerLayer = playerLayer {
            playerLayer.frame = self.bounds
        }
    }

    open override func play() {

            handleExternalPlaybackActiveEvent()
        case &kvoPlayerRateContext:
            handlePlayerRateChanged()
        case &kvoViewBounds:
            handleViewBoundsChanged()
        default:
            break
        }
