Android 从SD卡获取歌曲的最佳方式

Android 从SD卡获取歌曲的最佳方式,android,android-recyclerview,audio-player,android-music-player,Android,Android Recyclerview,Audio Player,Android Music Player,创建Android音乐播放器的最佳方式是什么?我已经阅读了各种教程,其中一些是使用自定义方法获取的,该方法收集所有文件,扩展名为“.mp3”的一个添加到ArrayList()中,另一些是使用MediaStore。哪种方法最好 如果每次打开应用程序时都使用递归方法,它将执行其任务并将结果存储在ArrayList()中,这需要时间,另一方面,我没有尝试MediaStore方法。那么这是好的吗?我应该去吗 您正确地遍历了存储系统中的所有文件,存储相关文件总是比访问专门为特定任务设计的系统更为繁重的任务

创建Android音乐播放器的最佳方式是什么?我已经阅读了各种教程,其中一些是使用自定义方法获取的,该方法收集所有文件,扩展名为“.mp3”的一个添加到ArrayList()中,另一些是使用MediaStore。哪种方法最好


如果每次打开应用程序时都使用递归方法,它将执行其任务并将结果存储在ArrayList()中,这需要时间,另一方面,我没有尝试MediaStore方法。那么这是好的吗?我应该去吗

您正确地遍历了存储系统中的所有文件,存储相关文件总是比访问专门为特定任务设计的系统更为繁重的任务。访问MediaStore是获取本地媒体文件的推荐方法。请参考下面从我们的社区成员页面中选择的代码

 ContentResolver cr = getActivity().getContentResolver();

  Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
 String selection = MediaStore.Audio.Media.IS_MUSIC + "!= 0";
 String sortOrder = MediaStore.Audio.Media.TITLE + " ASC";
 Cursor cur = cr.query(uri, null, selection, null, sortOrder);
 int count = 0;

if(cur != null)
{
  count = cur.getCount();

if(count > 0)
{
    while(cur.moveToNext())
    {
        String data = cur.getString(cur.getColumnIndex(MediaStore.Audio.Media.DATA));
    int songId = cur.getColumnIndex(MediaStore.Audio.Media._ID);
    int songTitle = cur.getColumnIndex(MediaStore.Audio.Media.TITLE);
        // Add code to get more column here

        // Save to your list here
    }

}
}

 cur.close();

谢谢,你能告诉我更多关于cursor.query语法中的选择和投影吗?@ShantanuPatil请参考简要说明。快乐编码!!