首页 > 解决方案 > 如何使用 MediaStore 从具有路径、持续时间和缩略图的特定文件夹中获取所有视频?

问题描述

我想使用 MediaStore 从特定位置(文件夹)获取所有视频

1.全视频路径

2. 视频缩略图

3. 视频时长

如果有人对我如何获得上述所有内容有任何想法,请提供您的建议和帮助

提前致谢。

标签: javaandroidvideo

解决方案


  Uri mainUri;
    Cursor cursor1 = getContentResolver().query(
            MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
            new String[]{MediaStore.Video.Media._ID},
            MediaStore.Video.Media.DATA + "=? ",
            new String[]{pathMain}, null);
    if (cursor1 != null && cursor1.moveToFirst()) {
        int id = cursor1.getInt(cursor1.getColumnIndex(MediaStore.MediaColumns._ID));
        cursor1.close();
        mainUri = Uri.withAppendedPath(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, "" + id);
    } else {
        ContentValues values = new ContentValues();
        values.put(MediaStore.Video.Media.DATA, pathMain);
        mainUri = getContentResolver().insert(
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);

    }
    final String[] projection = new String[]{MediaStore.Video.Media._ID, MediaStore.Video.Media.DISPLAY_NAME, MediaStore.Video.Media.DATA,
            MediaStore.Video.Media.DURATION};
    String selection = MediaStore.Video.Media.DATA + "=?";
    String selectionArgs[] = {pathMain};
    CursorLoader loader = new CursorLoader(getActivity(), mainUri, projection, selection, selectionArgs, null);
    Cursor cursor = loader.loadInBackground();
    if (cursor != null && cursor.moveToFirst()) {

        long id = cursor.getLong(cursor.getColumnIndex(projection[0]));
        String name = cursor.getString(cursor.getColumnIndex(projection[1]));
        String path = cursor.getString(cursor.getColumnIndex(projection[2]));
        long duration = cursor.getLong(cursor.getColumnIndex(projection[3]));
        cursor.close();
        return new ImageObject(id, name, path, false, MEDIA_TYPE_VIDEO, duration);

    }

推荐阅读