media_source 0.1.0-alpha.1
media_source: ^0.1.0-alpha.1 copied to clipboard
A new Dart package project.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0-alpha.1 - 2025-11-03 #
Added #
- Initial release of the
media_sourcepackage - Core
MediaSourceabstraction for handling different media sources FileMediaSourceimplementation for local file system access- Support for file operations (delete, exists, size)
- Automatic MIME type detection
- Media metadata extraction
MemoryMediaSourceimplementation for in-memory media data- Support for
Uint8Listbyte arrays - MIME type detection from byte headers
- Support for
NetworkMediaSourceimplementation for remote URL media- URL validation and parsing
- Automatic media type detection from URLs
MediaTypeclassification system with subtypes:ImageType- for image filesAudioType- for audio files with duration supportVideoType- for video files with duration supportDocumentType- for PDF documentsUrlType- for URL referencesOtherType- for unclassified files
- Media type detection from:
- File paths using MIME type lookup
- MIME type strings
- Byte data headers
- File utilities (
file_util.dart):getMimeTypeFromPath()- detect MIME from file pathgetMimeTypeFromBytes()- detect MIME from byte datagetFileMetadata()- extract duration and MIME from media filesgetFileMetadataFromBytes()- extract metadata from byte arrays
- MIME groups utility (
mime_groups.dart):- Extension to
MediaTypemapping derived frommimepackage - Grouped extension sets by media type
- Pre-built sets:
imageExtensions,audioExtensions,videoExtensions,documentExtensions,otherExtensions - Helper functions:
mediaTypeForExtension()- get MediaType from file extensionisExtensionOfType()- check if extension matches a MediaType
- Runtime classification of all extensions from the
mimepackage's default extension map
- Extension to
- Cross-platform support:
- Platform-specific utilities for web and native (IO)
- Conditional imports for Flutter web compatibility
- File extensions on
XFile:delete()- delete file with existence checksize()- get file sizeexists()- check file existencemediaType- get MediaType from filename- get file name from path
- Comprehensive test suite:
MediaTypetests for classification and type detectionMemoryMediaSourcetestsNetworkMediaSourcetests with URL validation- Test fixtures and sample files
Features #
- ๐ฏ Type-safe media source abstraction
- ๐ Support for file, memory, and network media sources
- ๐ Automatic media type detection from paths, MIME types, and bytes
- โฑ๏ธ Duration metadata extraction for audio/video files
- ๐ Cross-platform support (Flutter mobile, web, desktop)
- ๐ Comprehensive MIME type to media type mapping
- ๐งฉ Extension-based media type lookup utilities
- ๐งช Test coverage for core functionality
- ๐ Built on
cross_filefor cross-platform file handling - โก Lightweight with minimal dependencies