Ich entwickle Musik-Player und ich verwende Bild von Audio-Dateien, die es in UI meiner App angezeigt werden, wenn ich Musik sehr schnell ändern (iV, nächster Knopf) dann kann ich java.lang.RuntimeException: Canvas: trying to use a recycled bitmap
bekommen, aber populäre Spieler vom Spielmarkt haben dieses Problem nicht, wenn ich Musik sehr schnell ändere. Wie kann ich diesen Fehler sowie andere Musik-Apps vermeiden?EmbeddedPicture & java.lang.RuntimeException: Leinwand: Der Versuch, eine Recycling-Bitmap zu verwenden
ähnliche Frage mit dem gleichen Fehler hat mir nicht geholfen
Media Klasse
MediaMetadataRetriever mMetaRetriever = new MediaMetadataRetriever();
mMetaRetriever.setDataSource(songPath);
byte[] art = mMetaRetriever.getEmbeddedPicture();
Bitmap iconUrl = null;
try {
if (art != null) {
iconUrl = BitmapFactory.decodeByteArray(art, 0, art.length);
}
} catch (Exception e) {
}
UI-Klasse
try {
// with or without it error happens anyway
/*if (mBitmap != null && !mBitmap.isRecycled()) {
mBitmap.recycle();
mBitmap = null;
mLogo.setImageBitmap(null);
}*/
mBitmap = metadata.getBitmap(MediaMetadataCompat.METADATA_KEY_ALBUM_ART);
mLogo.setImageBitmap(mBitmap);
} catch (Exception e) {
}
Sie zwei Beispielcode zugewiesen sind. Welchen benutzen Sie? Welchen Fehler sehen Sie bei jedem Codebeispiel? – Dibzmania