trickPlay(rate, useTrickPlayTrack = true) {
    // A playbackRate of 0 is used internally when we are in a buffering state,
    // and doesn't make sense for trick play.  If you set a rate of 0 for trick
    // play, we will reject it and issue a warning.  If it happens during a
    // test, we will fail the test through this assertion.
    goog.asserts.assert(rate != 0, 'Should never set a trick play rate of 0!');
    if (rate == 0) {
      shaka.log.alwaysWarn('A trick play rate of 0 is unsupported!');
      return;
    }

    this.playRateController_.set(rate);

    if (this.loadMode_ == shaka.Player.LoadMode.MEDIA_SOURCE) {
      this.abrManager_.playbackRateChanged(rate);
      this.useTrickPlayTrackIfAvailable(useTrickPlayTrack && rate != 1);
    }
    this.setupTrickPlayEventListeners_(rate);
  }
Enable trick play to skip through content without playing by repeatedly
seeking. For example, a rate of 2.5 would result in 2.5 seconds of content
being skipped every second. A negative rate will result in moving
backwards.

<p>
If the player has not loaded content or is still loading content this will
be a no-op. Wait until <code>load</code> has completed before calling.

<p>
Trick play will be canceled automatically if the playhead hits the
beginning or end of the seekable range for the content.

@param {number} rate
@param {boolean=} useTrickPlayTrack
@export