parseMediaPlaylist method

Future<HlsMediaPlaylist?> parseMediaPlaylist(
  1. Uri uri, {
  2. Map<String, Object>? headers,
  3. String? hlsKey,
})

Parses the HLS media playlist from the given uri.

Returns an HlsMediaPlaylist if successful, otherwise null.

Implementation

Future<HlsMediaPlaylist?> parseMediaPlaylist(
  Uri uri, {
  Map<String, Object>? headers,
  String? hlsKey,
}) async {
  final HlsPlaylist? playList =
      await parsePlaylist(uri, headers: headers, hlsKey: hlsKey);
  if (playList is HlsMasterPlaylist) {
    for (final Uri? _uri in playList.mediaPlaylistUrls) {
      if (_uri == null) continue;
      Uri masterUri = '${uri.pathPrefix()}${_uri.path}'.toSafeUri();
      HlsMediaPlaylist? mediaPlayList = await parseMediaPlaylist(
        masterUri,
        headers: headers,
        hlsKey: uri.generateMd5,
      );
      return mediaPlayList;
    }
  } else if (playList is HlsMediaPlaylist) {
    return playList;
  }
  return null;
}