mp3 ファイルのタグを編集する方法を知っている人はいますか?
Mp3agic を試しましたが、MP3Fileオブジェクトを宣言しようとするとクラッシュし、jaudiotagger ライブラリも試しましたが、クラッシュします。
助けが必要です。
アップデート:
これは、アプリがクラッシュするコード スニペットです。
File testFile = new File(Environment.getExternalStorageDirectory(),"/Music/test.mp3");
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile audioFile = AudioFileIO.read(testFile);
Tag newTag = audioFile.getTag();
newTag.setField(FieldKey.ALBUM, this.album);
newTag.setField(FieldKey.ARTIST,this.artist);
audioFile.commit();
回線でアプリがクラッシュする
AudioFile audioFile = AudioFileIO.read(testFile);
例外なく。
前述の行のすべてのデバッグ手順に従うと、JAudioTagger の MP3File クラスの 246 行目でアプリがクラッシュします。これは行です:
..
finally {
if(newFile != null) {
newFile.close();
}
..
そこで、ここでコードを変更しようとしました (AudioFile 宣言を変更しました):
File testFile = new File(Environment.getExternalStorageDirectory(),"/Music/test.mp3");
TagOptionSingleton.getInstance().setAndroid(true);
AudioFile audioFile = new AudioFile();
audioFile.setFile(testFile);
Tag newTag = audioFile.getTag();
newTag.setField(FieldKey.ALBUM, this.album);
newTag.setField(FieldKey.ARTIST,this.artist);
audioFile.commit();
そしてラインで
AudioFile audioFile = new AudioFile();
MP3File クラスの 232 行目で NullPointerException をスローします (この行はファイルのヘッダーを見つけようとします)。
audioFile: Method threw 'java.lang.NullPointerException' exception. Cannot evaluate org.jaudiotagger.audio.AudioFile.toString()
この例外により、次の行でこの例外が発生します。
java.lang.NullPointerException: Attempt to invoke interface method 'void org.jaudiotagger.tag.Tag.setField(org.jaudiotagger.tag.FieldKey, java.lang.String)' on a null object reference
行で:
newTag.setField(FieldKey.ALBUM, this.album);
アップデート:
私も行を変更しようとしました:
Tag newTag = audioFile.getTag();
に:
Tag newTag = audioFile.getTagOrCreateAndSetDefault();
ただし、次の例外がスローされます。
java.lang.RuntimeException: Unable to create default tag for this file format