code: protected void releaseObjects() {
          Log.d(TAG, "releaseObjects");
          if (this.mediaPlayer != null) {
              this.mediaPlayer.setSurface(null);
              this.mediaPlayer.reset();
          }
  
          this.videoIsReady = false;
          this.surfaceIsReady = false;
          this.initialMovieHeight = -1;
          this.initialMovieWidth = -1;
  
          if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
              if (this.textureView != null) {
                  this.textureView.setSurfaceTextureListener(null);
                  removeView(this.textureView);
                  this.textureView = null;
              }
          } else {
              if (this.surfaceHolder != null) {
                  this.surfaceHolder.removeCallback(this);
                  this.surfaceHolder = null;
              }
              if (this.surfaceView != null) {
                  removeView(this.surfaceView);
                  this.surfaceView = null;
              }
          }
  
          if (this.onProgressView != null) {
              removeView(this.onProgressView);
          }
      }
docs: Releases all objects FullscreenVideoView depends on
  It does not interfere with configuration properties
  because it is supposed to be called when this Object
  still exists