【问题标题】:Display Album Art in Android Music App在 Android 音乐应用中显示专辑封面
【发布时间】:2012-04-30 09:41:27
【问题描述】:

我正在尝试将 mp3 文件中的专辑封面添加到我的应用程序中,但它显示: 调用 getEmbeddedPicture 失败。

在我的歌曲课中,我设置了每首歌曲的艺术作品:

metaDataRetriver = new MediaMetadataRetriever();
metaDataRetriver.setDataSource(path);
//path = /mnt/sdcard/chan_mp3/Titel.mp3
byte[] artwork = metaDataRetriver.getEmbeddedPicture();

在我的 CustomAdapter 中,我尝试显示封面:

// This code works perfectly fine: for each song I get artist and title
textView.setText(values.get(position).getArtist() + " - " + values.get(position).getTitle());

// This code doesn't work at all
byte[] artwork = values.get(position).getArtwork();
Bitmap bMap = BitmapFactory.decodeByteArray(artwork, 0, artwork.length);
imageView.setImageBitmap(bMap);

问题是我在哪里遗漏了什么?是艺术品变量没有正确初始化还是我的请求有误?

或者有没有更好的方法来获取专辑封面和音乐信息?

【问题讨论】:

    标签: android android-mediaplayer


    【解决方案1】:

    我找到了另一种方法...我将为每首歌曲保存每个专辑 ID,然后我可以使用以下代码获取封面艺术:

              Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
              Uri uri = ContentUris.withAppendedId(sArtworkUri, Integer.valueOf(albumId));
              ContentResolver res = context.getContentResolver();
              InputStream in;
              try {
                  in = res.openInputStream(uri);
                  artwork = BitmapFactory.decodeStream(in);
                  } catch (FileNotFoundException e) {
                      e.printStackTrace();
                  }
    

    【讨论】:

    • 这不是让列表非常滞后吗?您如何提高性能?
    • 能否提供出处
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多