VideoInfo.fromJson constructor

VideoInfo.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory VideoInfo.fromJson(Map<String, dynamic> json) {
  final videoMetadata = json['video'] is List
      ? (json['video'] as List).cast<Map<String, dynamic>>().first
      : (json['video'] as Map).cast<String, dynamic>();
  final audioMetadata = json['audio'] != null
      ? json['audio'] is List
          ? (json['audio'] as List).isNotEmpty
              ? (json['audio'] as List).cast<Map<String, dynamic>>().first
              : null
          : (json['audio'] as Map).cast<String, dynamic>()
      : null;

  return VideoInfo(
    duration: Duration(milliseconds: json['duration']),
    format: json['format'],
    bitrate: json['bitrate'],
    video: VideoStreamMetadata(
      size: Dimensions(videoMetadata['width'], videoMetadata['height']),
      frameRate: videoMetadata['frame_rate'],
      bitrate: videoMetadata['bitrate'],
      codec: videoMetadata['codec'],
    ),
    audio: audioMetadata != null
        ? AudioStreamMetadata(
            bitrate: audioMetadata['bitrate'],
            channels: audioMetadata['channels'] is String
                ? int.tryParse(audioMetadata['channels'])
                : audioMetadata['channels'],
            codec: audioMetadata['codec'],
            sampleRate: audioMetadata['sample_rate'],
          )
        : null,
  );
}