setupTrickPlayEventListeners_(rate) {
    this.trickPlayEventManager_.removeAll();
    this.trickPlayEventManager_.listen(this.video_, 'timeupdate', () => {
      const currentTime = this.video_.currentTime;
      const seekRange = this.seekRange();
      const safeSeekOffset = this.isLive() ?
          this.config_.streaming.safeSeekOffset : 0;

      // Cancel trick play if we hit the beginning or end of the seekable
      // (Sub-second accuracy not required here)
      if (rate > 0) {
        if (Math.floor(currentTime) >= Math.floor(seekRange.end)) {
          this.cancelTrickPlay();
        }
      } else {
        if (Math.floor(currentTime) <=
            Math.floor(seekRange.start + safeSeekOffset)) {
          this.cancelTrickPlay();
        }
      }
    });
  }
Configures all the necessary listeners when trick play is being performed.

@param {number} rate
@private