async start(segmentPrefetchById) {
    goog.asserts.assert(this.config_,
        'StreamingEngine configure() must be called before init()!');

    // Setup the initial set of Streams and then begin each update cycle.
    await this.initStreams_(segmentPrefetchById || (new Map()));
    this.destroyer_.ensureNotDestroyed();

    shaka.log.debug('init: completed initial Stream setup');
    this.startupComplete_ = true;
  }
Initialize and start streaming.

By calling this method, StreamingEngine will start streaming the variant
chosen by a prior call to switchVariant(), and optionally, the text stream
chosen by a prior call to switchTextStream().  Once the Promise resolves,
switch*() may be called freely.

@param {!Map<number, shaka.media.SegmentPrefetch>=} segmentPrefetchById
  If provided, segments prefetched for these streams will be used as needed
  during playback.
@return {!Promise}