現在動画アプリを作っているのですが、たまに画面が真っ暗のまま固まってしまいます。ログには

'Attempting to set a slider's minimumValue (0.000000) to be larger than the maximumValue (nan)'

と表示されます。ネットで調べたところ、動画の取得状況をKVOで監視すると解決すると書いていたのですが、解決することができませんでした。ご教授していただけると幸いです。
以下が動画周りのコードです。

func setUpVideoPlayer(url: URL) {
    assets = AVAsset(url: url)
    playerItem = AVPlayerItem(asset: assets)
    player = AVPlayer(playerItem: playerItem)
    playerItem.addObserver(self, forKeyPath: "status", options: [.old, .new], context: nil)
    videoPlayerView.player = player

}

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    guard let keyPath = keyPath else {
        return
    }
    if keyPath == "status" {
        let status = playerItem.status
        switch status {
        case .unknown:
            print("unknown")
            return
        case .readyToPlay:
            do {
                 print("readyToPlay")
                videoPlayerView.player?.play()
            }
        case .failed:
             print("failed")
             return
        }
    }