createStreamInfosFromMediaTags_(mediaTags, groupIdPathwayIdMapping) {
    // Filter out subtitles and media tags without uri (except audio).
    mediaTags = mediaTags.filter((tag) => {
      const uri = tag.getAttributeValue('URI') || '';
      const type = tag.getAttributeValue('TYPE');
      return type != 'SUBTITLES' && (uri != '' || type == 'AUDIO');
    });

    const groupedTags = {};
    for (const tag of mediaTags) {
      const key = tag.getTagKey(!this.contentSteeringManager_);
      if (!groupedTags[key]) {
        groupedTags[key] = [tag];
      } else {
        groupedTags[key].push(tag);
      }
    }

    for (const key in groupedTags) {
      // Create stream info for each audio / video media grouped tag.
      this.createStreamInfoFromMediaTags_(
          groupedTags[key], groupIdPathwayIdMapping, /* requireUri= */ false);
    }
  }
@param {!Array<!shaka.hls.Tag>} mediaTags Media tags from the playlist.
@param {!Map<string, string>} groupIdPathwayIdMapping
@private