0
我正在開發音樂播放器,並使用音頻文件中的圖片將其顯示在我的應用的用戶界面中,如果我非常快速地更改音樂(上一個,下一個按鈕),那麼我可以得到java.lang.RuntimeException: Canvas: trying to use a recycled bitmap
,但是如果我非常快地改變音樂,Play市場上的流行玩家就不會遇到這個問題。我怎樣才能避免這個錯誤,以及在其他音樂應用程序?EmbeddedPicture&java.lang.RuntimeException:Canvas:試圖使用回收的位圖
具有相同的錯誤類似的問題沒有幫助我
MediaService類
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類
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) {
}
你已經把兩個代碼示例。你在使用哪一個?每個代碼示例面臨的錯誤是什麼? – Dibzmania