2013-03-07 12 views
1

我有一個問題:我實現了一個android項目,當我按下一個按鈕時播放一首歌曲。它也在另一個視圖(應用程序有兩個片段)中顯示了mp3文件的元數據。我的意思是元數據解釋器的名稱,songcover ...我只有一個mp3文件在原始目錄中。但是當我把另一個mp3文件放在原始目錄中時(只有這個沒有改變代碼),元信息突然消失了。結果爲空。這些不再顯示。當我刪除一個MP3文件時,它再次顯示元數據。可以s.o.告訴我爲什麼我不能在原始目錄中放置另一個mp3文件?我不明白這一點。 :( 我在代碼中什麼都沒有改變,只是把一個又一個的MP3文件,然後它不工作getEmbeddedPicture:當我把一個以上的mp3文件調用getEmbeddedPicture失敗

如何解決它提前感謝

+0

沒有人可以幫助我嗎?:( – user1953173 2013-03-07 15:39:55

回答

0

試着這麼做加載每次的AsyncTask裏面。?

private class LoadImageTask extends AsyncTask<String, Void, Bitmap>{ 

    private ImageView artImage; 

    public LoadImageTask(ImageView image){ 
     artImage = image; 
    } 

    @Override 
    protected void onPreExecute() { 
     retriever = new MediaMetadataRetriever(); 
    } 

    @Override 
    protected Bitmap doInBackground(String... params) { 
     retriever.setDataSource(params[0]); 
     byte[] art = retriever.getEmbeddedPicture(); 
     Bitmap bitmap = null; 
     if(art != null){ 
      bitmap = BitmapFactory.decodeByteArray(art, 0, art.length); 
     } 
     return bitmap; 
    } 

    @Override 
    protected void onPostExecute(Bitmap bm) { 
     if(bm != null){ 
      artImage.setImageBitmap(bm); 
     } 
     else{ 
      artImage.setImageResource(R.drawable.no_image); 
     } 
    } 

} 
相關問題