MediaFile.fromMetadata constructor

MediaFile.fromMetadata(
  1. Map<String, dynamic> metadata
)

Create MediaFile from metadata

Implementation

factory MediaFile.fromMetadata(Map<String, dynamic> metadata) {
  final typeString = metadata['type'] as String?;
  MediaType mediaType;

  switch (typeString) {
    case 'video':
      mediaType = MediaType.video;
      break;
    case 'image':
      mediaType = MediaType.image;
      break;
    case 'audio':
      mediaType = MediaType.audio;
      break;
    default:
      throw Exception('Invalid media type: $typeString');
  }

  return MediaFile(
    path: metadata['path'] as String,
    name: metadata['name'] as String,
    type: mediaType,
    size: metadata['size'] as int? ?? 0,
    duration: metadata['duration'] != null
        ? Duration(milliseconds: (metadata['duration'] as num).round())
        : null,
    width: metadata['width'] as int?,
    height: metadata['height'] as int?,
    mimeType: metadata['mimeType'] as String?,
    creationDate: metadata['creationDate'] != null
        ? DateTime.parse(metadata['creationDate'] as String)
        : null,
    additionalMetadata: metadata['additionalMetadata'] as Map<String, dynamic>?,
  );
}