Sto sviluppando una sorta di lettore multimediale per Android. La domanda è come posso ottenere la copertina del file audio su Android. Ad esempio, il lettore multimediale Android predefinito mostra le copertine degli album quando si elencano gli album, come posso ottenere queste opere d'arte.copertina art su android
risposta
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);
codice di esempio più completa si possono trovare in fonte lettore musicale Android qui https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/MusicUtils.java metodo getArtworkQuick.
ho provato sopra il codice, riesco a ottenere l'arte dell'album ma non nell'ordine corretto sull'emulatore, sul mio Galaxy S posso vedere le copertine degli album per una mp3 dove ho più di 100 file. Ancora una volta sul mio Galaxy S la sua immagine mostra per la canzone sbagliata (solo la canzone più in alto). Qualche suggerimento per risolvere questo problema? –
È stato un mio errore, invece di id album stavo passando id canzone. Sta funzionando bene ora. grazie –
ehi ... come prendi l'albumid per una canzone particolare ?? –
Android riconosce solo i file denominati "AlbumArt.jpg" come copertine degli album. Basta mettere le foto con quel nome nella cartella dell'album e starai bene ..
Scusa forse la domanda era poco confusa. Sto sviluppando un'applicazione e voglio ottenere la copertina dell'album dalla mia applicazione. –
Non so se hai letto che Google sta facendo Stackoverflow il official Android app development Q&A medium ma per le domande dei principianti ... Ora, non so niente di sviluppare in Andriod, ma una rapida ricerca del sito Android Developers, ho trovato questo:
Speriamo che ti aiuto.
Sì, noto anche che MediaStore.Audio.AudioColumns.ALBUM_ART è presente ma in realtà non esiste.ContentResolver.query (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null); - restituisce il cursore con tutte le colonne e ALBUM_ART non è lì. –
Sono presenti solo le colonne ALBUM, ALBUM_ID, ALBUM_KEY nel cursore ma non ALBUM_ART –
In base ai commenti degli altri, sembra che la tua domanda riguardi meno Android e altro su come ottenere le copertine degli album in generale. Forse this article sul recupero della copertina dell'album da Amazon sarà utile. Una volta che hai una copia locale e la memorizzi come suggerito da Nick, credo che dovresti essere in grado di recuperarla come suggeriva Fudgey.
No non voglio ottenere la copertina dell'album in generale. È disponibile un tag opzionale nei tag ID3v2 per la copertina. Android sta analizzando la maggior parte del campo ID3v2 e la domanda è come ottenere l'arte nascosta incorporata nel tag ID3v2 non usando Amazon o altri servizi web –
Forse la domanda è poco confusa, forse quella corretta estrarrà "Immagine allegata" da Tag ID3v2 su Android. http://www.id3.org/id3v2.3.0 per ulteriori informazioni sulla foto allegata –
Qui posso allegare una funzione che restituisce le copertine degli album dal negozio multimediale.
Qui in funzione dobbiamo solo passare l'album_id che otteniamo da Media store.
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;
}
È possibile utilizzare
MediaMetadataRetriever
classe e ottenere informazioni tracciare cioè titolo, artista, album, Immagine
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;
}
io non so perché tutti lo rendono così complicato da poter utilizzare Glide eve questo in modo più semplice e efficace con appena 1 riga di codice
Dichiarare questo percorso in App Costanti -
final public static Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
ottenere l'immagine Uri utilizzando Album ID
Uri uri = ContentUris.withAppendedId(PlayerConstants.sArtworkUri,
listOfAlbums.get(position).getAlbumID());
Ora semplicemente visualizzare le copertine degli album utilizzando uri: -
Glide gestirà il caching, scali caricamento lento e pigro di immagini per te.
Spero che aiuti qualcuno.
Grazie amico questo funziona per me .... – redblood
- 1. C# ID tag mp3 con taglib - album art
- 2. Frame video in Device Art da Android Studio Screen Record
- 3. Documentazione libreria React Native ART
- 4. Flusso copertina iPad
- 5. È possibile recuperare la copertina dell'album dal file mp3 remoto in Android?
- 6. Dove posso trovare WPF Clip Art?
- 7. Java 7/compilabile James bond ASCII art
- 8. Genera testo Ascii art in C
- 9. Sotto-vista della copertina del bordo UIView?
- 10. `Dimensione sfondo: copertina` riempire il bordo
- 11. Formato sfondo CSS3: la copertina non rende la copertina dell'immagine in verticale
- 12. AVRCP 1.3 supporta la copertina dell'album?
- 13. background-size: la copertina non funziona?
- 14. Quando si esegue il debug nel dispositivo con ART abilitato, l'app Android è lenta
- 15. Arresto nativo su /system/lib/libart.so su lollipop android 5.0.1 samsung
- 16. Ottieni foto di copertina utilizzando l'API di Facebook
- 17. esempio di overflow del buffer dal libro Art of Exploitation
- 18. Getting I/art: Esplicita scansione contrassegni simultanei GC liberato
- 19. Scala CSS sprite pixel art senza smoothing dell'immagine
- 20. Perché git push origin master draw ASCII art?
- 21. crash applicazione nativa su Android L
- 22. Linux: libreria per scrivere dati ID3v2 e copertina
- 23. sfondo a schermo intero con copertina, ma concentrarsi su una parte dell'immagine
- 24. Come impostare la dimensione dello sfondo su "copertina", più un po 'più in CSS?
- 25. Impostazione di un'immagine di copertina reattiva su display ad alta densità
- 26. Ottenere immagini sgradevoli mentre si simula la copertina in tela
- 27. Tagging di file mkv con immagini di copertina?
- 28. Recupero della foto di copertina della timeline di Facebook
- 29. modello di copertina di bootstrap: dove posizionare l'immagine?
- 30. come rendere il bordo della copertina elemento figlio del genitore?
Poiché sembra che ci sia un po 'di confusione su quale parte della tua applicazione hai bisogno di aiuto, potresti voler aggiornare la tua domanda di conseguenza. –
puoi anche provare questo: http://stackoverflow.com/questions/10209176/extract-album-cover-from-mp3-file-in-android?rq=1 – Chepech