0

如果选择下一首歌曲且专辑封面不存在,则专辑封面不会设置为默认图像

我正在尝试制作媒体播放器。如果我有上一首歌曲的专辑封面,而下一首歌曲没有专辑封面,则下一首歌曲开始,但它仅显示旧专辑封面

这是我正在尝试的代码

long albumId = cursor
                .getLong(cursor
                        .getColumnIndexOrThrow(android.provider.MediaStore.Audio.Media.ALBUM_ID));
        final Uri ART_CONTENT_URI = Uri
                .parse("content://media/external/audio/albumart");
        Uri albumArtUri = ContentUris.withAppendedId(ART_CONTENT_URI, albumId);
        Bitmap actuallyUsableBitmap = null;
        BitmapFactory.Options options = new BitmapFactory.Options();
        // options.inSampleSize = 1;
        AssetFileDescriptor fileDescriptor = null;
        try {
            fileDescriptor = this.getContentResolver().openAssetFileDescriptor(
                    albumArtUri, "r");
            actuallyUsableBitmap = BitmapFactory.decodeFileDescriptor(
                    fileDescriptor.getFileDescriptor(), null, options);
            fileDescriptor = null;
            if (actuallyUsableBitmap != null) {
                album_art.setImageBitmap(actuallyUsableBitmap);
            } else if (actuallyUsableBitmap == null) {
                album_art.setBackgroundResource(R.drawable.ic_launcher);
            }
        }

        catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block

            //album_art.setBackgroundResource(R.drawable.ic_launcher);
            //Toast.makeText(this, e1 + "geting Id", Toast.LENGTH_SHORT).show();

            e1.printStackTrace();
        }

我尝试了两种if else 条件以及try catch,但即使两种方式都不起作用

4

1 回答 1

1
long albumId = cursor
                .getLong(cursor
                        .getColumnIndexOrThrow(android.provider.MediaStore.Audio.Media.ALBUM_ID));]

try {

            Bitmap albumArt = getAlbumart(albumId);
            if (albumArt != null) {
                album_art.setBackgroundDrawable(new BitmapDrawable(albumArt));
            } else {
                album_art.setBackgroundDrawable(new BitmapDrawable(
                        getDefaultAlbumArt()));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    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 = this.getContentResolver()
                    .openFileDescriptor(uri, "r");

            if (pfd != null) {
                FileDescriptor fd = pfd.getFileDescriptor();
                bm = BitmapFactory.decodeFileDescriptor(fd);
            }
        } catch (Exception e) {
        }
        return bm;
    }

    public Bitmap getDefaultAlbumArt() {
        Bitmap bm = null;
        BitmapFactory.Options options = new BitmapFactory.Options();
        try {
            bm = BitmapFactory.decodeResource(getResources(),
                    R.drawable.ic_launcher, options);
        } catch (Error ee) {
        } catch (Exception e) {
        }
        return bm;
    }

这可能对某人有帮助

于 2015-07-23T08:46:11.097 回答