parseSegment method
Parses M3U8 TS file segment URLs from the playlist at uri
.
Returns a list of segment URLs.
Implementation
Future<List<String>> parseSegment(
Uri uri,
Map<String, Object>? headers,
) async {
final HlsMediaPlaylist? playList =
await parseMediaPlaylist(uri, headers: headers);
if (playList == null) return <String>[];
List<String> segments = <String>[];
for (final Segment segment in playList.segments) {
String? segmentUrl = segment.url;
if (segmentUrl != null && !segmentUrl.startsWith('http')) {
int relativePath = 0;
while (segmentUrl!.startsWith("../")) {
segmentUrl = segmentUrl.substring(3);
relativePath++;
}
segmentUrl = '${uri.pathPrefix(relativePath)}/' + segmentUrl;
}
if (segmentUrl == null) continue;
segments.add(segmentUrl);
}
return segments;
}