2

这是 mp3 文件标签中的图像 http://i.stack.imgur.com/HtXqA.jpg

我使用 Android 的 MediaMetaDataRetreiver 从 mp3 文件中获取此图像字节数组 ...当我尝试使用 BitmapFactory.decodeByteArray 解码此图像时,它返回 null

帮助将不胜感激

编辑:当我第一次使用 options.inJustDecodeBounds = true ... options.outWidth 和 options.outHeight 解码时返回正确的宽度和高度

完整代码:

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
        retriever.setDataSource(context, songUri);
        byte[] data = retriever.getEmbeddedPicture();
        if(data != null)
        {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeByteArray(data, 0, data.length, options);
            options.inSampleSize = BitmapUtils.calculateInSampleSize(options, 500, 500);
            options.inJustDecodeBounds = false;
            albumArtBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, options);
        }
4

1 回答 1

1

改用流:

InputStream is;
    Bitmap bitmap;
    is = context.getResources().openRawResource(R.drawable.someImage);

    bitmap = BitmapFactory.decodeStream(is);
    try {
        is.close();
        is = null;
    } catch (IOException e) {
    }

顺便说一句,我还没有尝试过 jpg,但我想这可能是个问题。尝试将其转换为“png”

于 2013-09-05T12:56:29.773 回答