Closed fei0316 closed 3 years ago
Thanks! I'll check it out.
The first problem should've been fixed by switching to Jaudiotagger.
But the third problem might not get fixed until there is a better solution. I've written the "SYNCHRONISEDLYRICS" tag to one of my songs and tried to put the Jaudiotagger to work, which turned out that although AutomaTag and Poweramp both could detect the lyrics, the library does not recognize them,, even if I specified the field key "SYNCHRONISEDLYRICS".
As for the second one, it'll get fixed ASAP, which would behave like: when embedded lyrics is disabled, the plugin only looks for the external lyric file. Once enabled, the plugin parses embedded lyrics first, and tries to find external lyric file if embedded lyrics are not available.
I did more research on the third problem (should've done it before I report the issue - sorry!), and apparently no one uses the LYRICS field.
So there are two types of lyrics field in ID3 (MP3): USLT and SYLT.
USLT is what we refer to as UNSYNCEDLYRICS, which is what everyone (Poweramp, MusicBee, Mp3tag, foobar, mp3agic) uses. It was intended to be used for lyrics with no timestamp, but people just embed the contents of lrc files in this field, and many apps would recognize it (MusicBee does, and by default saves lrc-formatted synchronized lyrics in this field). I believe this is the original plan for this feature of this app also (save lrc content in the tag, so no more lrc files necessary).
SYLT is the "intended" approach for synchronized lyrics in ID3 tags, which uses a different formatting scheme with two fields: one for time and one for lyrics. Almost nothing supports this except MusicBee, and I think its implementation is wrong anyway, as it does not offer two separate fields for time and text, like SYLT Editor does. MusicBee's implementation is probably why it got me all confused.
Since apparently no one uses SYLT (I only "used" it as I misunderstood its meaning) I believe it is safe to just ignore it altogether, and focus on the original design: lrc contents in USLT.
With that out of the way, I think using FieldKey for Jaudiotagger is sufficient for our needs then.
No problem, and thanks for your explanation!
I just tested your latest code with MP3, FLAC, and AAC (M4A), and all seemed to be working as expected. Thanks!
Describe the bug
To Reproduce
Device info:
Additional context Please see log for the first problem. I believe it can be solved by first checking if it's mp3 before proceeding. Alternatively, you could consider supporting file formats other than mp3. I found these libraries: https://github.com/ealva-com/ealvatag, http://www.jthink.net/jaudiotagger/ The last two (especially the last one) are probably expected behavior, but I believe fixing it would make the app usable to more people, thank you! 20201017-104615.log