Android媒体元数据检索器性能下降

时间:2014-10-02 05:22:25

标签: android android-mediaplayer

我创造了音乐播放器,但我有问题,当我检索歌曲标题和艺术家时,需要很长时间。 这是我的代码:

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;
}

2 个答案:

答案 0 :(得分:1)

如果歌曲存储在设备上,您应该在MediaStore查询曲目信息。

答案 1 :(得分:0)

也许你应该直接从外部卡上加载歌曲