fromMap static method

DownloadOptions fromMap(
  1. Map<Object?, Object?> downloadOptionsMap,
  2. String? otp,
  3. String? token,
  4. String? playbackInfo,
  5. String? customPlayerId,
)

Implementation

static DownloadOptions fromMap(Map<Object?, Object?> downloadOptionsMap,
    String? otp, String? token, String? playbackInfo, String? customPlayerId) {
  String mediaId = downloadOptionsMap['mediaId'] as String;

  Map<Object?, Object?> mediaInfoMap =
      downloadOptionsMap['mediaInfo'] as Map<Object?, Object?>;

  MediaInfo mediaInfo = MediaInfo(
      mediaId: mediaInfoMap['mediaId'] as String,
      type: MediaInfoType.offline,
      title: mediaInfoMap['title'] as String,
      description: mediaInfoMap['description'] as String,
      duration: Duration(milliseconds: mediaInfoMap['duration'] as int));

  final List<AudioTrack> allAudio = [];
  final List<VideoTrack> allVideo = [];

  List availableTracks = downloadOptionsMap["availableTracks"] as List;

  for (var element in availableTracks) {
    if (element is Map) {
      switch (element["type"]) {
        case "audio":
          allAudio.add(AudioTrack(
              id: element["id"],
              language: element["language"],
              bitrate: element["bitrate"]));
          break;
        case "video":
          allVideo.add(VideoTrack(
              id: element["id"],
              bitrate: element["bitrate"],
              width: element["width"],
              height: element["height"]));
          break;
      }
    }
  }

  return InternalDownloadOption(mediaId, mediaInfo, allAudio, allVideo, otp, token,
      playbackInfo, customPlayerId);
}