 
 // KVO player keys
 
-private let PlayerTracksKey = "tracks"
-private let PlayerPlayableKey = "playable"
-private let PlayerDurationKey = "duration"
 private let PlayerTimeControlStatusKey = "timeControlStatus"
 
 // KVO player item keys

        }
    }

    fileprivate func setupAsset(_ asset: AVAsset) {
        guard isViewLoaded else { return }

        if self.playbackState == .playing {


        self._asset = asset

        self._asset?.loadValuesAsynchronously(forKeys: loadableKeys, completionHandler: { () -> Void in
            if let asset = self._asset {
                for key in loadableKeys {
                    var error: NSError? = nil
                    let status = asset.statusOfValue(forKey: key, error: &error)
                    if status == .failed {
                        self.playbackState = .failed
                        self.executeClosureOnMainQueueIfNecessary {
                            self.playerDelegate?.player(self, didFailWithError: PlayerError.failed)
                        }
                        return
                    }
                }
                
                if !asset.isPlayable {
                    self.playbackState = .failed
                    self.executeClosureOnMainQueueIfNecessary {
                        self.playerDelegate?.player(self, didFailWithError: PlayerError.failed)
                    }
                    return
                }

