Ich entwickle eine Art Media Player für Android. Die Frage ist, wie kann ich das Cover-Art von Audio-Datei auf Android bekommen. Zum Beispiel zeigt der Standard-Android-Media-Player Albumcover, wenn Alben aufgelistet werden, wie kann ich diese Kunstwerke bekommen.Cover Art on Android
Antwort
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);
Ausführlichere Beispielcode kann in Android Musik-Player Quelle hier https://github.com/android/platform_packages_apps_music/blob/master/src/com/android/music/MusicUtils.java Methode getArtworkQuick finden.
Ich habe oben Code versucht, ich kann Album Art, aber nicht in der richtigen Reihenfolge auf Emulator, auf meinem Galaxy S Ich kann Album Art für einen sehen mp3, wo ich mehr als 100 Datei habe. Ein weiteres auf meinem Galaxy S, das Bild für falsches Lied zeigt (nur das oberste Lied). Irgendwelche Vorschläge, um dieses Problem zu lösen? –
Es war mein Fehler, anstelle von Album-ID ging ich Song-ID. Es funktioniert jetzt gut. danke –
hey ... wie bekommt man Albumid für einen bestimmten Song? –
Android erkennt nur Dateien mit dem Namen "AlbumArt.jpg" als Albumcover. Legen Sie einfach die Bilder mit diesem Namen in den Albumordner und Sie werden in Ordnung sein.
Sorry vielleicht war die Frage etwas verwirrend. Ich entwickle eine Anwendung und ich möchte die Album-Kunst von meiner Anwendung erhalten. –
Ich weiß nicht, wenn Sie lesen, dass Google Stackoverflow die official Android app development Q&A medium macht, aber für Anfänger Fragen ... Jetzt weiß ich nichts in andriod über die Entwicklung, aber eine schnelle Suche der Website für Android-Entwickler, fand ich diese:
Hoffentlich wird es helfen.
Ja, ich bemerke auch, dass es MediaStore.Audio.AudioColumns.ALBUM_ART gibt, aber es existiert nicht wirklich. ContentResolver.query (MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null); - gibt den Cursor mit allen Spalten zurück und ALBUM_ART ist nicht da. –
Es gibt nur ALBUM, ALBUM_ID, ALBUM_KEY Spalten im Cursor, aber keine ALBUM_ART –
Basierend auf Ihren Kommentaren zu anderen scheint es, dass Ihre Frage weniger über Android und mehr darüber, wie man Albumcover im Allgemeinen erhält. Vielleicht ist this article zum Abrufen von Albumcover von Amazon hilfreich. Sobald Sie eine lokale Kopie haben und diese speichern, wie Nick es vorgeschlagen hat, sollten Sie sie, wie von Fudgey vorgeschlagen, abrufen können.
Nein ich möchte nicht das Album Kunst im Allgemeinen erhalten. Es gibt optionale ID3v2-Tags für Cover-Art. Android analysiert den größten Teil des ID3v2-Feldes und die Frage ist, wie man die eingebettete Coverart im ID3v2-Tag ohne amazon oder einige andere Webservices bekommt. –
Vielleicht ist die Frage etwas verwirrend, vielleicht wird die richtige "Attached picture" aus ID3v2-Tag auf Android. http://www.id3.org/id3v2.3.0 für weitere Informationen über das beigefügte Bild –
Hier kann ich eine Funktion, die Rückgabe Albumcover aus Media Store ist.
Hier in Funktion müssen wir nur die album_id übergeben, die wir von Media Store erhalten.
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;
}
können Sie verwenden
MediaMetadataRetriever
Klasse und erhalten verfolgen info dh Titel, Künstler, Album, Bild
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;
}
Ich weiß nicht, warum Jeder macht es so kompliziert, dass Sie Glide zu Achi verwenden können Vorabend dies auf einfachste und effizienteste Weg, mit nur 1 Zeile Code
diesen Weg Konstanten in App deklarieren -
final public static Uri sArtworkUri = Uri
.parse("content://media/external/audio/albumart");
Get Bild Uri mit Album ID
Uri uri = ContentUris.withAppendedId(PlayerConstants.sArtworkUri,
listOfAlbums.get(position).getAlbumID());
einfach Jetzt Albumcover anzeigen mit uri: -
Glide.with(context).load(uri).placeholder(R.drawable.art_default).error(R.drawable.art_default)
.crossFade().centerCrop().into(holder.albumImage);
Glide wird Caching, scali ng und faul laden von Bildern für Sie.
Ich hoffe, es hilft jemandem.
Danke Kumpel das funktioniert für mich .... – redblood
- 1. FFmpeg, wie man Cover Art (Bild) in .m4a einbindet
- 2. Linux: Bibliothek zum Schreiben ID3v2 Daten und Cover Art
- 3. Postgres Art vs. Ruby on Rails Sortieren
- 4. Ruby on Rails Art auf Prioritäten
- 5. Branch-and-Bound-Algorithmus für das Cover-Cover-Problem?
- 6. S-View Cover-Erkennung [Magnetsensor]
- 7. iPhone - Cover Flow
- 8. Cover Flow Advice
- 9. UIView Cover-Unteransicht?
- 10. Android animation flip cover und ease up (open book animation)
- 11. Android: NullPointerException on webview
- 12. NotImplementedException on Android
- 13. Holen Sie sich Cover-Art von MP3-Dateien über PHP und zeigen Sie es an
- 14. `Hintergrundgröße: cover` fill up border
- 15. Erreiche facebook gleich Bild cover
- 16. Complete Cover Background Image Ausgabe
- 17. Bild abgeschnitten mit Hintergrund: Cover
- 18. Gcov meldet unerwartete Cover-Ergebnisse
- 19. Bootstrap - navbar-fixed-top cover Inhalt
- 20. android-Art der Dropdown-Liste
- 21. Android erhalten Art einer Ansicht
- 22. Android Android SDK, Single Sign-on-Frage?
- 23. Android Drop Shadow on View
- 24. Android On Demand Erlaubnis Anfrage
- 25. Android Espresso NoMatchingViewException on check
- 26. Wie entsättigen View on Android?
- 27. User Authentification on Android - Sicherheitsimplementierung
- 28. Gibt es eine Art Masterpage-Funktionalität in Ruby on Rails?
- 29. Richtige Art und Weise eine Backbone.js Sammlung on the fly
- 30. Android - Verifizierung fehlgeschlagen auf Klasse ART/Dalvik
Da es scheinbar ein wenig Verwirrung darüber gibt, mit welchem Teil Ihrer Anwendung Sie Hilfe benötigen, sollten Sie Ihre Frage entsprechend aktualisieren. –
können Sie dies auch versuchen: http://stackoverflow.com/questions/10209176/extract-album-cover-from-mp3-file-in-android?rq=1 – Chepech