如何获取所有音频、视频文件

saa*_*saa 5 android

我正在编写一个可以播放音频和视频文件的媒体播放器。我在这里使用

String[] proj= {MediaStore.Video.Media._ID,MediaStore.Video.Media.DATA,MediaStore.Video.Media.DISPLAY_NAME,
                MediaStore.Video.Media.SIZE };

    cursor = getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, proj, null, null, null);
Run Code Online (Sandbox Code Playgroud)

查询文件。运行良好。但它只提供视频文件。那么如何才能同时获取音频文件和视频文件呢?

saa*_*saa 2

基于此链接在同一光标中访问订购的图像和视频 正确答案是

String[] projection = {
                MediaStore.Files.FileColumns._ID, 
                MediaStore.Files.FileColumns.DATA,
                MediaStore.Files.FileColumns.DATE_ADDED,
                MediaStore.Files.FileColumns.MEDIA_TYPE,
                MediaStore.Files.FileColumns.MIME_TYPE,
                MediaStore.Files.FileColumns.TITLE
        };

        String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
                 + MediaStore.Files.FileColumns.MEDIA_TYPE_AUDIO 
                 + " OR "
                 + MediaStore.Files.FileColumns.MEDIA_TYPE + "="
                 + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;

        Uri queryUri = MediaStore.Files.getContentUri("external");

        CursorLoader cursorLoader = new CursorLoader(
                this,
                queryUri,
                projection,
                selection,
                null, // Selection args (none).
                MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order.
              );

        myCursor = cursorLoader.loadInBackground();
Run Code Online (Sandbox Code Playgroud)