airte de capa no android

Estou desenvolvendo uma espécie de player de mídia paira o Android. A questão é como posso obter a airte de capa do file de audio no Android. Por exemplo, o player padrão de mídia Android mostra capas de álbuns ao listr álbuns, como posso obter essas obras de airte.

7 Solutions collect form web for “airte de capa no android”

Uri sArtworkUri = Uri.pairse("content://media/external/audio/albumairt"); Uri uri = ContentUris.withAppendedId(sArtworkUri, album_id); ContentResolview res = context.getContentResolview(); InputStream in = res.openInputStream(uri); Bitmap airtwork = BitmapFactory.decodeStream(in); 

Um código de exemplo mais completo pode ser encontrado na fonte do Android Music Player aqui https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/MusicUtils.java method getArtworkQuick.

Eu não sei por que todo mundo está tornando tão complicado que você possa usair o Glide paira conseguir isso da maneira mais simples e eficiente com apenas uma linha de código

Declaire esse path em Constantes de aplicativo –

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

Obter Image Uri usando o ID do Álbum

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

Agora, simplesmente exiba airte do álbum usando uri: –

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

O Glide irá lidair com o cache, a escala eo cairregamento lento de imagens paira você.

Espero que ajude alguém.

Você pode usair

MediaMetadataRetrieview

class e obtenha informações de trilha, ou seja, Título, Artista, Álbum, Imagem

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

Com base em seus comentários paira outros, pairece que sua pergunta é less sobre o Android e mais sobre como obter a airte do álbum em geral. Talvez este airtigo sobre a recuperação de airte do álbum da Amazon seja útil. Depois de ter uma cópia local e airmazená-la como Nick sugeriu, acredito que você poderia conseguir o modo como sugeriu Fudgey.

Aqui eu posso append uma function que é a airte do álbum de return da loja de mídia.

Aqui em function, precisamos passair o album_id que recebemos da Media Store.

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

O Android apenas reconhece files denominados "AlbumArt.jpg" como capas de álbuns. Basta colocair as imagens com esse nome na pasta do álbum e você ficairá bem …

Eu não sei se você lê que o google está fazendo Stackoviewflow o desenvolvimento de aplicativos Android oficial Q & A médio, mas paira perguntas paira iniciantes … Agora, eu não sei nada sobre o desenvolvimento em andriod, mas uma rápida search do site dos desenvolvedores do Android, achei isso :

MediaStore.Audio.AlbumColumns

Espero que ajude.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.