Samurai016 / Audiotagger

This library allow you to read and write ID3 tags to MP3 files.
https://pub.dev/packages/audiotagger
MIT License
22 stars 20 forks source link

When I modify the metadata of flac and ogg music files, the prompt cannot be cast #3

Closed mrdong916 closed 4 years ago

mrdong916 commented 4 years ago

When I modify the metadata of flac and ogg music files, the prompt cannot be cast

ogg

E/generic (16138): Cannot make changes to file /storage/emulated/0/五音/音乐/杨千嬅 - 处处吻.ogg because org.jaudiotagger.tag.id3.ID3v23Tag cannot be cast to org.jaudiotagger.tag.vorbiscomment.VorbisCommentTag
E/generic (16138): java.lang.ClassCastException: org.jaudiotagger.tag.id3.ID3v23Tag cannot be cast to org.jaudiotagger.tag.vorbiscomment.VorbisCommentTag
E/generic (16138):  at org.jaudiotagger.tag.vorbiscomment.VorbisCommentCreator.convert(VorbisCommentCreator.java:55)
E/generic (16138):  at org.jaudiotagger.audio.generic.AbstractTagCreator.convert(AbstractTagCreator.java:41)
E/generic (16138):  at org.jaudiotagger.audio.ogg.OggVorbisCommentTagCreator.convert(OggVorbisCommentTagCreator.java:48)
E/generic (16138):  at org.jaudiotagger.audio.ogg.OggVorbisTagWriter.write(OggVorbisTagWriter.java:97)
E/generic (16138):  at org.jaudiotagger.audio.ogg.OggFileWriter.writeTag(OggFileWriter.java:45)
E/generic (16138):  at org.jaudiotagger.audio.generic.AudioFileWriter.write(AudioFileWriter.java:335)
E/generic (16138):  at org.jaudiotagger.audio.AudioFileIO.writeFile(AudioFileIO.java:485)
E/generic (16138):  at org.jaudiotagger.audio.AudioFileIO.write(AudioFileIO.java:208)
E/generic (16138):  at org.jaudiotagger.audio.AudioFile.commit(AudioFile.java:111)
E/generic (16138):  at com.nicolorebaioli.audiotagger.AudiotaggerPlugin.writeTags(AudiotaggerPlugin.java:112)
E/generic (16138):  at com.nicolorebaioli.audiotagger.AudiotaggerPlugin.onMethodCall(AudiotaggerPlugin.java:64)
E/generic (16138):  at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
E/generic (16138):  at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/generic (16138):  at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
E/generic (16138):  at android.os.MessageQueue.nativePollOnce(Native Method)
E/generic (16138):  at android.os.MessageQueue.next(MessageQueue.java:336)
E/generic (16138):  at android.os.Looper.loop(Looper.java:182)
E/generic (16138):  at android.app.ActivityThread.main(ActivityThread.java:7523)
E/generic (16138):  at java.lang.reflect.Method.invoke(Native Method)
E/generic (16138):  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
E/generic (16138):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953)
W/System.err(16138): org.jaudiotagger.audio.exceptions.CannotWriteException: Cannot make changes to file /storage/emulated/0/五音/音乐/杨千嬅 - 处处吻.ogg because org.jaudiotagger.tag.id3.ID3v23Tag cannot be cast to org.jaudiotagger.tag.vorbiscomment.VorbisCommentTag
W/System.err(16138):    at org.jaudiotagger.audio.generic.AudioFileWriter.write(AudioFileWriter.java:365)
W/System.err(16138):    at org.jaudiotagger.audio.AudioFileIO.writeFile(AudioFileIO.java:485)
W/System.err(16138):    at org.jaudiotagger.audio.AudioFileIO.write(AudioFileIO.java:208)
W/System.err(16138):    at org.jaudiotagger.audio.AudioFile.commit(AudioFile.java:111)
W/System.err(16138):    at com.nicolorebaioli.audiotagger.AudiotaggerPlugin.writeTags(AudiotaggerPlugin.java:112)
W/System.err(16138):    at com.nicolorebaioli.audiotagger.AudiotaggerPlugin.onMethodCall(AudiotaggerPlugin.java:64)
W/System.err(16138):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
W/System.err(16138):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
W/System.err(16138):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
W/System.err(16138):    at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err(16138):    at android.os.MessageQueue.next(MessageQueue.java:336)
W/System.err(16138):    at android.os.Looper.loop(Looper.java:182)
W/System.err(16138):    at android.app.ActivityThread.main(ActivityThread.java:7523)
W/System.err(16138):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err(16138):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
W/System.err(16138):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953)
 

flac

I/flac    ( 7474): /storage/emulated/0/storage/emulated/0/五音/songs/那女孩对我说 (完整版)-Uu.flac BlockType:STREAMINFO DataLength:34 isLastBlock:false
I/flac    ( 7474): /storage/emulated/0/storage/emulated/0/五音/songs/那女孩对我说 (完整版)-Uu.flac BlockType:SEEKTABLE DataLength:522 isLastBlock:false
I/flac    ( 7474): /storage/emulated/0/storage/emulated/0/五音/songs/那女孩对我说 (完整版)-Uu.flac BlockType:VORBIS_COMMENT DataLength:109 isLastBlock:false
I/flac    ( 7474): /storage/emulated/0/storage/emulated/0/五音/songs/那女孩对我说 (完整版)-Uu.flac BlockType:PADDING DataLength:8167 isLastBlock:true
W/System.err( 7474): java.lang.ClassCastException: org.jaudiotagger.tag.id3.ID3v23Tag cannot be cast to org.jaudiotagger.tag.flac.FlacTag
W/System.err( 7474):    at org.jaudiotagger.audio.flac.FlacTagCreator.convert(FlacTagCreator.java:57)
W/System.err( 7474):    at org.jaudiotagger.audio.generic.AbstractTagCreator.convert(AbstractTagCreator.java:41)
W/System.err( 7474):    at org.jaudiotagger.audio.flac.FlacTagWriter.write(FlacTagWriter.java:151)
W/System.err( 7474):    at org.jaudiotagger.audio.flac.FlacFileWriter.writeTag(FlacFileWriter.java:39)
W/System.err( 7474):    at org.jaudiotagger.audio.generic.AudioFileWriter2.write(AudioFileWriter2.java:70)
W/System.err( 7474):    at org.jaudiotagger.audio.AudioFileIO.writeFile(AudioFileIO.java:485)
W/System.err( 7474):    at org.jaudiotagger.audio.AudioFileIO.write(AudioFileIO.java:208)
W/System.err( 7474):    at org.jaudiotagger.audio.AudioFile.commit(AudioFile.java:111)
W/System.err( 7474):    at com.nicolorebaioli.audiotagger.AudiotaggerPlugin.writeTags(AudiotaggerPlugin.java:112)
W/System.err( 7474):    at com.nicolorebaioli.audiotagger.AudiotaggerPlugin.onMethodCall(AudiotaggerPlugin.java:64)
W/System.err( 7474):    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
W/System.err( 7474):    at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
W/System.err( 7474):    at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
W/System.err( 7474):    at android.os.MessageQueue.nativePollOnce(Native Method)
W/System.err( 7474):    at android.os.MessageQueue.next(MessageQueue.java:336)
W/System.err( 7474):    at android.os.Looper.loop(Looper.java:182)
W/System.err( 7474):    at android.app.ActivityThread.main(ActivityThread.java:7523)
W/System.err( 7474):    at java.lang.reflect.Method.invoke(Native Method)
W/System.err( 7474):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
W/System.err( 7474):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:953)
mrdong916 commented 4 years ago

我修复了许多BUG,你可以参考一下我修复过的代码,经过我测试,差不多都可以正常工作

https://github.com/mrdong916/Audiotagger

Samurai016 commented 4 years ago

Solved with latest release. Update the library version in your pubspec.yaml to get it.