android - ¿Cómo obtener y configurar(cambiar) la etiqueta ID3(metadatos) de los archivos de audio?
metadata mediastore (3)
Y el punto más importante es que las etiquetas ID3 editadas se mostraron solo en mi aplicación.
Si editas el archivo, cualquiera lo verá. Puede crear su propia base de datos de archivos multimedia (como la base de datos de Android ) y simplemente almacenar los datos modificados allí.
Estoy trabajando para cambiar las etiquetas ID3, los metadatos en los archivos de audio, como:
- Artista
- Título
- Álbum
- etc.
Y el punto central ,. las etiquetas ID3 editadas deberían mostrarse solo en mi aplicación.
Creo que esto es lo que está buscando en la biblioteca MyID3 para configurar y obtener etiquetas para archivos multimedia.
Descargue este archivo jar MyID3_for_android y agréguelo a la ruta de compilación de su proyecto. Aquí está el código de ejemplo. aquí pathdata
es la ruta del archivo de audio.
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
}
Feliz codificación :)
En realidad, el código de FasteKerinns es bastante bueno. Solo debes cambiar
nuevo MyID3 (). write (src, dst, src_set, meta);
a
nuevo MyID3 (). update (src, src_set, meta);
lo que significa que no necesitas la variable dst en absoluto.
Además, tengo este fragmento de código que actualiza la canción que se modifica en 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();