ID3タグ、オーディオファイルのメタデータを変更するために取り組んでいます。
そしてコアポイント、。編集したID3タグは私のアプリにのみ表示する必要があります。
これがあなたが探しているものだと思いますMyID3ライブラリメディアファイルのタグを設定して取得します。
このjarファイルMyID3_for_Androidをダウンロードして、プロジェクトのビルドパスに追加します。これがサンプルコードです。ここでpathdata
は、オーディオファイルのファイルパスです。
File src = new File(pathdata);
MusicMetadataSet src_set = null;
try {
src_set = new MyID3().read(src);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} // read metadata
if (src_set == null) // perhaps no metadata
{
Log.i("NULL", "NULL");
}
else
{
try{
IMusicMetadata metadata = src_set.getSimplified();
String artist = metadata.getArtist();
String album = metadata.getAlbum();
String song_title = metadata.getSongTitle();
Number track_number = metadata.getTrackNumber();
Log.i("artist", artist);
Log.i("album", album);
}catch (Exception e) {
e.printStackTrace();
}
File dst = new File(pathdata);
MusicMetadata meta = new MusicMetadata("name");
meta.setAlbum("Chirag");
meta.setArtist("CS");
try {
new MyID3().write(src, dst, src_set, meta);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ID3WriteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // write updated metadata
}
ハッピーコーディング:)
実際、FasteKerinnsのコードは非常に優れています。あなたはただ変えるべきです
new MyID3()。write(src、dst、src_set、meta);
に
new MyID3()。update(src、src_set、meta);
つまり、dst変数はまったく必要ありません。
さらに、MediaStoreで変更された曲を更新する次のコードがあります。
scanner=new MediaScannerConnection(getApplicationContext(),
new MediaScannerConnectionClient() {
public void onScanCompleted(String path, Uri uri) {
scanner.disconnect();
}
public void onMediaScannerConnected() {
scanner.scanFile(path, "audio/*");
}
});
scanner.connect();
そして最も重要な点は、編集されたID3タグが私のアプリにのみ表示されたことです。
ファイルを編集すると、誰でもそれを見ることができます。メディアファイルの独自のデータベース( Androidのデータベース など)を作成し、変更したデータをそこに保存することができます。
上記の回答に基づいてサンプルアプリを作成しました。サンプルの実装はここからダウンロードできます https://github.com/mickyarun/AndroidSongMetaDataUpdate.git