tag star poner para mp3tag las informacion etiquetas etiquetar editar caratulas canciones automaticamente automatag app aplicacion android

android - star - mp3tag



arte de portada en android (7)

Android solo reconoce los archivos llamados "AlbumArt.jpg" como Cubiertas de Álbum. Simplemente coloca las fotos con ese nombre en la carpeta del álbum y estarás bien.

Estoy desarrollando una especie de reproductor multimedia para Android. La pregunta es cómo puedo obtener la portada del archivo de audio en Android. Por ejemplo, el reproductor de medios de Android predeterminado muestra las carátulas de los álbumes al publicar álbumes, ¿cómo puedo obtener estas ilustraciones?



Puedes usar

MediaMetadataRetriever

clase y obtener información de la pista, es decir, título, artista, álbum, imagen

Bitmap GetImage(String filepath) //filepath is path of music file { Bitmap image; MediaMetadataRetriever mData=new MediaMetadataRetriever(); mData.setDataSource(filePath); try{ byte art[]=mData.getEmbeddedPicture(); image=BitmapFactory.decodeByteArray(art, 0, art.length); } catch(Exception e) { image=null; } return image; }


Según tus comentarios a otros, parece que tu pregunta es menos sobre Android y más sobre cómo obtener carátulas de álbumes en general. Quizás este artículo sobre la recuperación de carátulas de Amazon sea útil. Una vez que tenga una copia local y la almacene como Nick sugirió, creo que debería poder recuperarla de la manera que sugirió Fudgey.


Aquí puedo adjuntar una función que es devolver la carátula del álbum de la tienda de medios.

Aquí en función solo tenemos que pasar el album_id que obtenemos de la tienda de medios.

public Bitmap getAlbumart(Long album_id) { Bitmap bm = null; try { final Uri sArtworkUri = Uri .parse("content://media/external/audio/albumart"); Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id); ParcelFileDescriptor pfd = context.getContentResolver() .openFileDescriptor(uri, "r"); if (pfd != null) { FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd); } } catch (Exception e) { } return bm; }


No sé por qué todo el mundo lo hace tan complicado que puede usar Glide para lograr esto de la manera más simple y eficiente con solo 1 línea de código

Declara este camino en Constantes de Aplicaciones -

final public static Uri sArtworkUri = Uri .parse("content://media/external/audio/albumart");

Obtén Image Uri usando la ID del álbum

Uri uri = ContentUris.withAppendedId(PlayerConstants.sArtworkUri, listOfAlbums.get(position).getAlbumID());

Ahora simplemente muestra la carátula del álbum usando uri: -

Glide.with(context).load(uri).placeholder(R.drawable.art_default).error(R.drawable.art_default) .crossFade().centerCrop().into(holder.albumImage);

Glide manejará el almacenamiento en caché, la escala y la carga perezosa de imágenes para ti.

Espero que ayude a alguien.


Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id); ContentResolver res = context.getContentResolver(); InputStream in = res.openInputStream(uri); Bitmap artwork = BitmapFactory.decodeStream(in);

Puede encontrar un código de muestra más completo en la fuente del reproductor de música Android aquí https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/MusicUtils.java method getArtworkQuick.