2014-10-02 169 views
0

我創建了音樂播放器,但我有問題,當我檢索歌曲標題和藝術家時,需要很長時間。 這裏是我的代碼:Android媒體元數據檢索器性能低下

private void updateListData() 
{ 
    Song song; 
    ArrayList<Song> tempSongList = new ArrayList<>(); 
    MediaMetadataRetriever myRetriever; 
    for(int i = 0;i < songsList.size();i++) 
    { 
     song = songsList.get(i); 
     try 
     { 
      myRetriever = new MediaMetadataRetriever(); 
      myRetriever.setDataSource(song.getSongPath()); 
      song.setTitle(myRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE)); 
      song.setArtist(myRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST)); 
      // release Media Retriever 
      myRetriever.release(); 
      tempSongList.add(song); 
     } 
     catch (IllegalArgumentException e) 
     { 
      e.printStackTrace(); 
     } 
     catch (RuntimeException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
    songsList = tempSongList; 
} 

回答

1

加載你的歌曲如果歌曲存儲在設備上,你應該查詢MediaStore的曲目信息。

+0

感謝它幫助 – alex 2014-10-03 08:21:39

0

也許你應該直接從外部卡

+0

試過,沒有變化 – alex 2014-10-02 05:38:10

+0

嘗試使用Soundpool :) http://developer.android.com/reference/android/media/SoundPool.html – Boldbayar 2014-10-02 05:39:50

+0

如果soundpool工作請+ rep :) – Boldbayar 2014-10-02 05:40:34