File tree Expand file tree Collapse file tree 8 files changed +40
-5
lines changed Expand file tree Collapse file tree 8 files changed +40
-5
lines changed Original file line number Diff line number Diff line change @@ -338,7 +338,7 @@ $audio->getCover()->getHeight(); // `?int` in pixels
338
338
| MKV | ✅ | Matroska | ` matroska ` | _ Cover not supported_ |
339
339
| APE | ❌ | Monkey's Audio | | |
340
340
| MP3 | ✅ | MPEG audio layer 3 | ` id3v2 ` ,` id3v1 ` | |
341
- | MP4 | ✅ | Digital multimedia container format | ` quicktime ` | |
341
+ | MP4 | ✅ | Digital multimedia container format | ` quicktime ` | _ Partially supported _ |
342
342
| M4A | ✅ | mpeg-4 audio | ` quicktime ` | |
343
343
| M4B | ✅ | Audiobook | ` quicktime ` | |
344
344
| M4V | ✅ | mpeg-4 video | ` quicktime ` | |
Original file line number Diff line number Diff line change 1
1
{
2
2
"name" : " kiwilan/php-audio" ,
3
3
"description" : " PHP package to parse and update audio files metadata, with `JamesHeinrich/getID3`." ,
4
- "version" : " 3.0.03 " ,
4
+ "version" : " 3.0.04 " ,
5
5
"keywords" : [
6
6
" audio" ,
7
7
" php" ,
Original file line number Diff line number Diff line change @@ -421,13 +421,21 @@ public static function toAsf(AudioCore $core): Id3TagAsf
421
421
);
422
422
}
423
423
424
- public static function fromId3 (?Id3AudioTagV1 $ v1 , Id3AudioTagV2 $ v2 ): AudioCore
424
+ public static function fromId3 (?Id3AudioTagV1 $ v1 , ? Id3AudioTagV2 $ v2 ): AudioCore
425
425
{
426
+ if (! $ v1 ) {
427
+ $ v1 = new Id3AudioTagV1 ();
428
+ }
429
+
430
+ if (! $ v2 ) {
431
+ $ v2 = new Id3AudioTagV2 ();
432
+ }
433
+
426
434
return new AudioCore (
427
435
album: $ v2 ->album () ?? $ v1 ->album (),
428
436
artist: $ v2 ->artist () ?? $ v1 ->artist (),
429
437
albumArtist: $ v2 ->band () ?? null ,
430
- comment: $ v2 ? $ v2 ->comment () : $ v1 ->comment (),
438
+ comment: $ v2 ->comment () ?? $ v1 ->comment (),
431
439
composer: $ v2 ->composer () ?? null ,
432
440
discNumber: $ v2 ->part_of_a_set () ?? null ,
433
441
genre: $ v2 ->genre () ?? $ v1 ->genre (),
Original file line number Diff line number Diff line change 33
33
expect ($ metadata ->getPath ())->toBeString ();
34
34
expect ($ metadata ->getFilesize ())->toBeInt ();
35
35
expect ($ metadata ->getExtension ())->toBeString ();
36
- // expect($metadata->getDataformat())->toBeString();
37
36
expect ($ metadata ->getEncoding ())->toBeString ();
38
37
expect ($ metadata ->getMimeType ())->toBeString ();
39
38
if ($ metadata ->getDurationSeconds ()) {
136
135
137
136
expect ($ audio ->isValid ())->toBeFalse ();
138
137
});
138
+
139
+ it ('can read file id3v1 ' , function (string $ path ) {
140
+ $ audio = Audio::get ($ path );
141
+ $ extension = pathinfo ($ path , PATHINFO_EXTENSION );
142
+ $ format = AudioFormatEnum::tryFrom ($ extension );
143
+
144
+ expect ($ audio ->getTitle ())->toBeString ();
145
+ expect ($ audio ->getArtist ())->toBeString ();
146
+ expect ($ audio ->getAlbum ())->toBeString ();
147
+ expect ($ audio ->getTrackNumber ())->toBeString ();
148
+ expect ($ audio ->getAlbumArtist ())->toBeString ();
149
+ expect ($ audio ->getComposer ())->toBeNull ();
150
+
151
+ expect ($ audio ->getgetExtension ())->toBe ($ extension );
152
+ expect ($ audio ->getFormat ())->toBe ($ format );
153
+ expect ($ audio ->getDuration ())->toBeFloat ();
154
+ expect ($ audio ->getExtras ())->toBeArray ();
155
+
156
+ expect ($ audio )->toBeInstanceOf (Audio::class);
157
+ })->with ([...AUDIO_ID3_V1 ]);
Original file line number Diff line number Diff line change @@ -63,6 +63,8 @@ function addWriterFilesForTests()
63
63
define ('MKA ' , __DIR__ .'/media/test.mka ' );
64
64
define ('MKV ' , __DIR__ .'/media/test.mkv ' );
65
65
define ('MP3 ' , __DIR__ .'/media/test.mp3 ' );
66
+ define ('MP3_ID3_V1_1 ' , __DIR__ .'/media/id3-test-1.mp3 ' );
67
+ define ('MP3_ID3_V1_2 ' , __DIR__ .'/media/id3-test-2.mp3 ' );
66
68
define ('MP4 ' , __DIR__ .'/media/test.mp4 ' );
67
69
define ('OGG ' , __DIR__ .'/media/test.ogg ' );
68
70
define ('OPUS ' , __DIR__ .'/media/test.opus ' );
@@ -96,6 +98,11 @@ function addWriterFilesForTests()
96
98
WV ,
97
99
]);
98
100
101
+ define ('AUDIO_ID3_V1 ' , [
102
+ MP3_ID3_V1_1 ,
103
+ MP3_ID3_V1_2 ,
104
+ ]);
105
+
99
106
define ('AUDIO_WRITER ' , [
100
107
// ALAC_WRITER,
101
108
// AIF_WRITER,
Original file line number Diff line number Diff line change 1
1
test-writer-alac. *
2
2
test-writer-no-meta. *
3
3
test-writer. *
4
+ id3-test-writer *
You can’t perform that action at this time.
0 commit comments