android擷取音樂檔案的內建專輯圖片

來源:互聯網
上載者:User

代碼和注釋如下:

private Cursor getCursor(String filePath) {          String path = null;          Cursor c = getContentResolver().query(                  MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null,                  MediaStore.Audio.Media.DEFAULT_SORT_ORDER);          // System.out.println(c.getString(c.getColumnIndex("_data")));          if (c.moveToFirst()) {              do {                  // 通過Cursor 擷取路徑,如果路徑相同則break;              System.out.println("////////"+filePath);                path = c.getString(c                          .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));                System.out.println("?????????"+path);                // 尋找到相同的路徑則返回,此時cursorPosition 便是指向路徑所指向的Cursor 便可以返回了                  if (path.equals(filePath)) {                      // System.out.println("audioPath = " + path);                      // System.out.println("filePath = " + filePath);                     // cursorPosition = c.getPosition();                 break;                }              } while (c.moveToNext());          }          // 這兩個沒有什麼作用,調試的時候用          // String audioPath = c.getString(c          // .getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));          //          // System.out.println("audioPath = " + audioPath);          return c;      }               private String getAlbumArt(int album_id) {              String mUriAlbums = "content://media/external/audio/albums";              String[] projection = new String[] { "album_art" };              Cursor cur = this.getContentResolver().query(                      Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)),                      projection, null, null, null);             String album_art = null;              if (cur.getCount() > 0 && cur.getColumnCount() > 0) {                  cur.moveToNext();                  album_art = cur.getString(0);              }              cur.close();              cur = null;              return album_art;          }        private void getImage(){        Cursor currentCursor = getCursor("/mnt/sdcard/"+mp3Info);     int album_id = currentCursor.getInt(currentCursor                      .getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID));         String albumArt = getAlbumArt(album_id);        Bitmap bm = null;        if (albumArt == null) {           mImageView.setBackgroundResource(R.drawable.staring);          } else {              bm = BitmapFactory.decodeFile(albumArt);              BitmapDrawable bmpDraw = new BitmapDrawable(bm);              mImageView.setImageDrawable(bmpDraw);          }        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.