음악 플레이어를 개발 중이며 음악을 매우 빠르게 변경하면 오디오 파일의 그림을 내 앱의 UI에 표시합니다 (이전, 다음 버튼을 클릭하면) java.lang.RuntimeException: Canvas: trying to use a recycled bitmap
을 얻을 수 있지만, 음악을 매우 빠르게 변경하면 Play 시장의 유명 플레이어가이 문제를 겪지 않습니다. 다른 음악 앱과 마찬가지로이 오류를 피하려면 어떻게해야합니까?EmbeddedPicture & java.lang.RuntimeException : 캔버스 : 재활용 비트 맵을 사용하려고합니다
비슷한 질문은 나에게 도움이되지 않았다
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) {
}
난 그냥 AsyncTask
를 사용하고 실행 (mImageViewAsync.cancel(true);
)를 취소하기로 결정
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