2012-04-30 92 views
0

我有一個音樂應用程序,我只想使用路徑即「/mnt/sdcard/chan_mp3/Title.mp3」顯示音樂標題的封面。僅使用mp3文件的路徑顯示專輯封面

我現在無法使用MediaStore來做到這一點。

宋初始化:

//path = "/mnt/sdcard/chan_mp3/Title.mp3" 
metaDataRetriver = new MediaMetadataRetriever(); 
metaDataRetriver.setDataSource(path); 
artwork = metaDataRetriver.getEmbeddedPicture(); 

ListActivity:

byte[] artwork = values.get(position).getArtwork(); // returns Song.artwork 
Bitmap bMap = BitmapFactory.decodeByteArray(artwork, 0, artwork.length); 
imageView.setImageBitmap(bMap); 

這是到目前爲止我的代碼,但它並沒有在所有現在工作...

+0

什麼不行?你有什麼問題? – Simon

+1

「我現在無法使用MediaStore來執行此操作。」爲什麼不?大多數mp3不包含嵌入的藝術作品,您需要掃描文件夾中的圖像文件才能獲得作品。 – zapl

+0

「大多數mp3不包含嵌入的藝術作品」多數民衆贊成沒關係,我的意思是其他解決方案不會工作,然後也。 那麼沒有其他的可能嗎?爲什麼有一個metaDataRetriever不起作用時,如參考文獻中所述? –

回答

0

我找到了另一種方式,當保存每首歌曲的ALBUM_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(); 
       } 
相關問題