async getQueueItem_(asset) {
    const manifestUri = await this.getManifestUri_(asset);
    let mimeType = null;
    if (asset.mimeType &&
        manifestUri && !manifestUri.startsWith('offline:')) {
      mimeType = asset.mimeType;
    }
    const itemConfig = asset.getConfiguration();
    shaka.util.PlayerConfiguration.mergeConfigObjects(
        itemConfig, this.desiredConfig_, this.defaultConfig_);
    const isOffline = asset.storedContent && asset.storedContent.offlineUri;
    /** @type {shaka.extern.QueueItem} */
    const queueItem = {
      manifestUri: manifestUri,
      startTime: null,
      mimeType: mimeType,
      config: itemConfig,
      extraText: isOffline ? null : asset.extraText,
      extraThumbnail: isOffline ? null : asset.extraThumbnail,
      extraChapter: asset.extraChapter,
    };
    return queueItem;
  }
@param {ShakaDemoAssetInfo} asset
@return {!Promise<shaka.extern.QueueItem>}
@private