fromPath static method
Create MediaFile from file path
Implementation
static Future<MediaFile> fromPath(String filePath) async {
final file = File(filePath);
if (!await file.exists()) {
throw Exception('File does not exist: $filePath');
}
final stat = await file.stat();
final fileName = filePath.split('/').last;
// Determine media type from file extension
final extension = fileName.split('.').last.toLowerCase();
MediaType mediaType;
if (['mp4', 'avi', 'mov', 'mkv', 'wmv', 'flv', 'webm'].contains(extension)) {
mediaType = MediaType.video;
} else if (['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'].contains(extension)) {
mediaType = MediaType.image;
} else if (['mp3', 'wav', 'aac', 'flac', 'ogg', 'm4a'].contains(extension)) {
mediaType = MediaType.audio;
} else {
throw Exception('Unsupported file type: $extension');
}
return MediaFile(
path: filePath,
name: fileName,
type: mediaType,
size: stat.size,
creationDate: stat.modified,
);
}