代码之家  ›  专栏  ›  技术社区  ›  Ungureanu Liviu

如何从MediaStore获取专辑艺术?

  •  0
  • Ungureanu Liviu  · 技术社区  · 16 年前

    如何从MediaStore获取专辑艺术?我试着这样做:

    String[] projectionImages  = new  String[]{MediaStore.Audio.Albums.ALBUM_ART, MediaStore.Audio.Albums.ALBUM_KEY};
    
    
    Cursor c = contentResolver.query(MediaStore.Audio.Albums.INTERNAL_CONTENT_URI, projectionImages, null, null, null);
    
    if(c != null){
          c.moveToFirst();
          Log.e(TAG, "am gasit " + c.getString(0) + " " + c.getString(1));
      }
     else{
          Log.e(TAG, "No image");
     }
    

    但不起作用。。我每一个条目都是空的!

    非常感谢。

    2 回复  |  直到 15 年前
        1
  •  1
  •   takahawk    10 年前

    它是遍历您在目录中看到的条目数,还是数字不匹配?

    以下是我在MediaStore中搜索图像时的工作原理

    if (cursor.moveToFirst()) {
    do {
        int col = cursor.getColumnIndex(Images.Media.DESCRIPTION);
        String description = cursor.getString(col);
        if (new Long(item).toString().equals(description)) {
            imageId = cursor.getPosition();
            int dataColumn = cursor.getColumnIndex(Images.Media.DATA);
            filePath = cursor.getString(dataColumn);
            return true;
        }
    } while (cursor.moveToNext());
    
        2
  •  1
  •   Taryn Frank Pearson    13 年前

    试试这个

    Cursor cursorAlbum = managedQuery(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI,
                        new String[]{MediaStore.Audio.Albums._ID, MediaStore.Audio.Albums.ALBUM_ART},MediaStore.Audio.Albums._ID+ "=" + album_id, null, null);
    
        if(cursorAlbum != null  && cursorAlbum.moveToFirst())
          {
    
            String uri = cursorAlbum.getString(cursorAlbum.getColumnIndex("album_art"));
            cursorAlbum.close();
            if(uri != null )    image.setImageURI(Uri.parse(uri));
    
          }