private void PreparePlayer(bool playWhenReady) { if (_player == null) { _player = new VideoPlayer(GetRendererBuilder()); _player.AddListener(this); _player.SetCaptionListener(this); _player.SetMetadataListener(this); _player.SeekTo(_playerPosition); _playerNeedsPrepare = true; _mediaController.SetMediaPlayer(_player.PlayerControl); _mediaController.Enabled = true; _eventLogger = new EventLogger(); _eventLogger.StartSession(); _player.AddListener(_eventLogger); _player.SetInfoListener(_eventLogger); _player.SetInternalErrorListener(_eventLogger); _debugViewHelper = new DebugTextViewHelper(_player, _debugTextView); _debugViewHelper.Start(); } if (_playerNeedsPrepare) { _player.Prepare(); _playerNeedsPrepare = false; UpdateButtonVisibilities(); } _player.Surface = _surfaceView.Holder.Surface; _player.PlayWhenReady = playWhenReady; }