java - 如何使用 MediaStore 从具有路径、持续时间和缩略图的特定文件夹中获取所有视频?
问题描述
我想使用 MediaStore 从特定位置(文件夹)获取所有视频
1.全视频路径
2. 视频缩略图
3. 视频时长
如果有人对我如何获得上述所有内容有任何想法,请提供您的建议和帮助
提前致谢。
解决方案
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);
}
推荐阅读
- c# - 我应该为我的桌面应用程序使用 Chromium Embedded Framework 还是 .net?
- java - Spring @Transaction 和 @Async 用于数据库操作
- c - 隐藏赋值的C宏技巧?
- bash - 如何逐行比较两个文件并在不同时输出整行
- java - 为什么我不能像行一样简单地获得一维数组?
- java - 如何在 Wiremock Servlet 上启用响应模板?
- php - 在 codeigniter 中的多个表中插入数据时出错
- python - 运行 .py 文件和直接与 Python 交互的时区差异
- java - 如何使java小程序自动全屏?(蚀)
- ios - 我可以在 Swift Playground 中加载 Alex Voice