Android音乐文件位置?

时间:2011-03-25 04:21:47

标签: android

我正在写一个音乐播放器应用程序,我想知道我应该在哪里查找用户的音乐文件。我想找到音乐应用程序通常找到的所有歌曲,我很好奇该应用程序如何找到歌曲。是否有特定文件夹的枚举变量?只是递归搜索SD卡?我知道在手机的SD卡上有一个音乐文件夹;它是如何在每个Android设备上,我应该递归搜索该文件夹?或者我应该让用户找到该文件夹​​?

2 个答案:

答案 0 :(得分:14)

您可以使用以下功能从SD卡中找到所有音乐文件。

public void getAllSongsFromSDCARD() 
{
    String[] STAR = { "*" };        
    Uri allsongsuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
    String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";

    cursor = managedQuery(allsongsuri, STAR, selection, null, null);

    if (cursor != null) {
        if (cursor.moveToFirst()) {
            do {
                String song_name = cursor
                        .getString(cursor
                                .getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
                int song_id = cursor.getInt(cursor
                        .getColumnIndex(MediaStore.Audio.Media._ID));

                String fullpath = cursor.getString(cursor
                        .getColumnIndex(MediaStore.Audio.Media.DATA));


                String album_name = cursor.getString(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ALBUM));
                int album_id = cursor.getInt(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ALBUM_ID));

                String artist_name = cursor.getString(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ARTIST));
                int artist_id = cursor.getInt(cursor
                        .getColumnIndex(MediaStore.Audio.Media.ARTIST_ID));



            } while (cursor.moveToNext());

        }
        cursor.close();
    }
}

答案 1 :(得分:2)

Android会自动扫描所有外部SD卡以获取音频并为此数据编制索引,有关详细信息,请参阅MediaStore.Audio类。这允许您按专辑,艺术家,流派和播放列表进行查询。如果您只想通过查询内容提供商MediaStore.Audio.Media.EXTERNAL_CONTENT_URI找到媒体文件列表。