mp3agicやjaudiotaggerのようなライブラリを使うほうが簡単だとわかりましたが、学習目的でid3タグを手動で編集したかったのです。30文字を超えるID3タグを挿入するにはどうすればよいですか?
タグを適切に取得するためのコードを設定しましたが、一部の曲ではタイトルが30文字にカットされていましたが、音楽プレーヤーで.mp3ファイルを開くと、 30文字以上
これは私がタグを表示するために、今使っているコードです:
File mp3File = new File(filePath);
byte[] mp3Meta = new byte[128];
try {
//convert file into array of bytes
fileReader = new FileInputStream(mp3File);
fileReader.skip((int)mp3File.length() - 128);
fileReader.read(mp3Meta);
String id3 = new String(mp3Meta);
String tag = id3.substring(0, 3);
if (tag.equals("TAG")) {
System.out.println("\nTitle: " + id3.substring(3, 32) + "\n" +
"Artist: " + id3.substring(33, 62) + "\n" +
"Album: " + id3.substring(63, 91) + "\n" +
"Year: " + id3.substring(93, 97) + "\n" +
"************************************************");
} else {
System.out.println("File has no ID3 tags..");
}
}catch(Exception e){
e.printStackTrace();
}
私はタグを編集することができます方法についてのアイデアを持っていますが、どのように私は完全なタイトルを取得する(またはすることができます任意のタグ)30文字を超える場合は? id3v2に30文字以上のタグを追加する方法がありましたが、id3v2フレームにアクセスする方法がわかりません
私はmp3が使用しているバージョン(id3v1またはid3v2)私はそれをプログラム的に行う方法もわかりません。
ID3は、30文字のタイトルに限定されています。より多くの文字を読み書きするには、ID3v2を使用する必要があります。 – dnault
dnault-私はそうすることができますか?私はhttp://id3.org/ID3v2Easyにあるページを読んだことがありますが、どれだけのオフセットを行う必要があるか、各タグの特定のバイト位置がわかりません。 – Brian
ID3バージョンの識別方法:「これらのフィールドのサイズを合計すると、30 + 30 + 30 + 4 + 30 + 1は128バイトではなく、128バイトではありません。 ID3v1/1.1タグを見つけるのに最も簡単な方法は、単語の "単語"を探すことです。このタグは、 TAG "ファイルの終わりから128バイト。出典:http://id3.org/ID3v1 – PeterCo