Improve handling for audio: aac, mp3, ogg, webm (#57)
- Update mime type for aac from `audio/x-aac` to `audio-aac`.
https://www.iana.org/assignments/media-types/audio/aac
- Add header byte detection for aac, mpeg audio, webm, and ogg.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 80d8b17..e82ae09 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,15 @@
# 1.0.3
* Add application/toml mimeType lookup by extension.
+* Add audio/aac mimeType lookup by header bytes.
+* Add audio/mpeg mimeType lookup by header bytes.
+* Add audio/ogg mimeType lookup by header bytes.
+* Add audio/weba mimeType lookup by header bytes.
* Add font/woff2 lookup by extension and header bytes.
* Add image/avif mimeType lookup by extension.
* Add image/heic mimeType lookup by extension.
* Add image/heif mimeType lookup by extension.
+* Change audio/x-aac to audio/aac when detected by extension.
# 1.0.2
diff --git a/lib/src/default_extension_map.dart b/lib/src/default_extension_map.dart
index 64e364b..64f4074 100644
--- a/lib/src/default_extension_map.dart
+++ b/lib/src/default_extension_map.dart
@@ -10,7 +10,7 @@
'3gp': 'video/3gpp',
'7z': 'application/x-7z-compressed',
'aab': 'application/x-authorware-bin',
- 'aac': 'audio/x-aac',
+ 'aac': 'audio/aac',
'aam': 'application/x-authorware-map',
'aas': 'application/x-authorware-seg',
'abw': 'application/x-abiword',
diff --git a/lib/src/magic_number.dart b/lib/src/magic_number.dart
index 299df42..ee3de31 100644
--- a/lib/src/magic_number.dart
+++ b/lib/src/magic_number.dart
@@ -107,6 +107,12 @@
MagicNumber('image/png', [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]),
MagicNumber('image/tiff', [0x49, 0x49, 0x2A, 0x00]),
MagicNumber('image/tiff', [0x4D, 0x4D, 0x00, 0x2A]),
+ MagicNumber('audio/aac', [0xFF, 0xF1]),
+ MagicNumber('audio/aac', [0xFF, 0xF9]),
+ MagicNumber('audio/weba', [0x1A, 0x45, 0xDF, 0xA3]),
+ MagicNumber('audio/mpeg', [0x49, 0x44, 0x33]),
+ MagicNumber('audio/mpeg', [0xFF, 0xFB]),
+ MagicNumber('audio/ogg', [0x4F, 0x70, 0x75]),
MagicNumber('video/mp4', [
0x00,
0x00,
diff --git a/test/mime_type_test.dart b/test/mime_type_test.dart
index d1833f5..e99214a 100644
--- a/test/mime_type_test.dart
+++ b/test/mime_type_test.dart
@@ -41,6 +41,9 @@
_expectMimeType('file.tiff', 'image/tiff');
_expectMimeType('file.tif', 'image/tiff');
_expectMimeType('file.webp', 'image/webp');
+ _expectMimeType('file.mp3', 'audio/mpeg');
+ _expectMimeType('file.aac', 'audio/aac');
+ _expectMimeType('file.ogg', 'audio/ogg');
_expectMimeType('file.aiff', 'audio/x-aiff');
_expectMimeType('file.m4a', 'audio/mp4');
_expectMimeType('file.toml', 'application/toml');
@@ -105,6 +108,12 @@
0x42,
0x50
]);
+ _expectMimeType('file', 'audio/mpeg',
+ headerBytes: [0x49, 0x44, 0x33, 0x0D, 0x0A, 0x1A, 0x0A]);
+ _expectMimeType('file', 'audio/aac',
+ headerBytes: [0xFF, 0xF1, 0x0D, 0x0A, 0x1A, 0x0A]);
+ _expectMimeType('file', 'audio/ogg',
+ headerBytes: [0x4F, 0x70, 0x75, 0x0D, 0x0A, 0x1A, 0x0A]);
_expectMimeType('file', 'audio/x-aiff', headerBytes: [
0x46,
0x4F,