【问题标题】:ListView displaying audio and video from mediastoreListView 显示来自 mediastore 的音频和视频
【发布时间】:2012-03-05 14:20:33
【问题描述】:

我正在尝试创建一个同时显示来自 mediastore 的音频和视频的列表。但是,我不确定如何创建这样的查询 - 是否可以同时获取音频和视频的信息?

所以要查询视频和音频,我这样做:

String[] projV = { MediaStore.Video.Media._ID,
            MediaStore.Video.Media.DATA,
            MediaStore.Video.Media.DISPLAY_NAME,
            MediaStore.Video.Media.DURATION,
            MediaStore.Video.Media.DATE_TAKEN };

Cursor videoCursor = getActivity().managedQuery(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projV, null,
                null, null);

String[] projA = { MediaStore.Audio.Media._ID,
            MediaStore.Audio.Media.DATA,
            MediaStore.Audio.Media.DISPLAY_NAME,
            MediaStore.Audio.Media.MIME_TYPE,
            MediaStore.Audio.Media.DURATION,
            MediaStore.Audio.Media.DATE_ADDED };
Cursor audioCursor = getActivity().managedQuery(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projA, null,
                null, null);

我研究过使用CursorJoinerMergeCursor,但我不确定如何使用它们,甚至不确定它是正确的解决方案。

所以我的问题是;有没有办法为 mediaStore 构造一个查询,该查询返回一个包含音频和视频信息的游标,或者我需要更复杂的东西,例如使用 CursorJoinerMergeCursor

正如我在开头提到的,我的目标是在媒体存储中创建一个显示所有音频和视频的列表 - 这是正确的方法还是我从错误的角度看待它?

谢谢。

【问题讨论】:

    标签: android cursor media mediastore


    【解决方案1】:

    通过使用适当的选择子句使用MediaStore.files,可以从API-11。

    public Loader<Cursor> onCreateLoader(int id, Bundle bundle)
    {
        final String PROJECTION[] = {FileColumns._ID, FileColumns.DATA, FileColumns.DATE_ADDED};
        final String ORDER = FileColumns.DATE_ADDED + " DESC";
        final String SELECTION =  "(" + FileColumns.MEDIA_TYPE + "=" + FileColumns.MEDIA_TYPE_VIDEO +") OR (" + FileColumns.MEDIA_TYPE + "=" + FileColumns.MEDIA_TYPE_IMAGE + ")";
        return new CursorLoader(getActivity(), Files.getContentUri("external"), PROJECTION, SELECTION, null, ORDER);
    }
    

    在此之前,如果您不关心排序顺序,则可以使用 MergeCursor。如果您需要管理排序顺序,请查看 MatrixCursor。或者将您的游标包装在实现订单逻辑的 CursorWrapper 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-20
      • 2021-11-08
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2014-12-25
      相关资源
      最近更新 更多