getStartTime_(startTime) {
    if (startTime == null) {
      if (this.timeline_.getDuration() < Infinity) {
        // If the presentation is VOD, or if the presentation is live but has
        // finished broadcasting, then start from the beginning.
        startTime = this.timeline_.getSeekRangeStart();
      } else {
        // Otherwise, start near the live-edge.
        startTime = this.timeline_.getSeekRangeEnd();
      }
    } else if (startTime instanceof Date) {
      const presentationStartTime =
          this.timeline_.getInitialProgramDateTime() ||
          this.timeline_.getPresentationStartTime();
      goog.asserts.assert(presentationStartTime != null,
          'Presentation start time should not be null!');
      startTime = (startTime.getTime() / 1000.0) - presentationStartTime;
    } else if (startTime < 0) {
      // For live streams, if the startTime is negative, start from a certain
      // offset time from the live edge.  If the offset from the live edge is
      // not available, start from the current available segment start point
      // instead, handled by clampTime_().
      startTime = this.timeline_.getSeekRangeEnd() + startTime;
    }

    return this.clampSeekToDuration_(
        this.clampTime_(/** @type {number} */(startTime)));
  }
Gets the playhead's initial position in seconds.

@param {?number|Date} startTime
@return {number}
@private