【问题标题】:List mp3 files from specific folder inside storage device [duplicate]列出存储设备内特定文件夹中的 mp3 文件 [重复]
【发布时间】:2018-01-15 07:59:47
【问题描述】:

我一直在构建简单的 mp3 播放器,一切顺利,从存储设备中获取所有 mp3 文件的代码运行良好。

Uri media = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;

我的问题是我只需要从 sdcard kalid 文件夹加载 mp3 文件。我试过这段代码,但它没有从 kalid 文件夹加载 mp3 文件。

File path = new File(Environment.getExternalStorageDirectory() + "/kalid");
Uri media = Uri.fromFile(path);

我也厌倦了这段代码

File path = new File(Environment.getExternalStorageDirectory() + "/kalid");
Uri media = MediaStore.Audio.Media.getContentUriForPath(String.valueOf(path));

我认为没有人理解我的问题,这里是完整的源代码 ContentResolver 解析器 = context.getContentResolver();

Uri media = MediaStore.Audio.Media.getContentUriForPath("Environment.getExternalStorageDirectory().getPath()+ kalid+");


    String selection = MediaStore.Audio.Media.IS_MUSIC + "!=0";
    Cursor cursor = resolver.query(media, PROJECTION, selection, null, null);
    if (cursor == null || cursor.getCount() == 0) {
        Log.d(TAG, "Music List Empty");
        return false;
    }

    mMusicList.clear(); // clear

    int count = cursor.getCount();

    for (int i = 0; i != count; ++i) {
        if (!cursor.moveToNext()) {
            break;
        }
        //Log.d(TAG, cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)));
        // Add to ArrayList
        mMusicList.add(new Music(
                cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID)),
                cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)),
                cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)),
                cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM)),
                cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST))
                ));

    }
    cursor.close();

【问题讨论】:

  • 确实如此。该代码什么也不做。那只会从路径中生成一个 uri。
  • @greenapps 给我指路谢谢
  • 不用了,谢谢。请联系代码编写服务。本网站旨在帮助您解决问题。请描述它们。

标签: android


【解决方案1】:

在尝试了这么多东西之后,我终于列出了 kalid 文件夹中的 mp3 文件,这里是源代码。

 Cursor cursor = resolver.query(media, 
PROJECTION, 
MediaStore.Audio.Media.DATA + " like ? ",
new String[]{"%kalid%"}, null);

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    相关资源
    最近更新 更多