如何从路径获取图像和视频缩略图,不起作用
How to get images and videos thumbnails from a path, not working
我正在做一种从特定路径获取所有图像和视频的方法,然后获取这些的缩略图并将它们放在另一个路径中。我得到以下信息:
public void getThumbnails(String persistentDataPath) {
// Get relevant columns for use later.
String[] projection = {
MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE,
};
// Return only video and image metadata.
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE
+ " OR "
+ MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;
Uri queryUri = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).toString() + "/Azlo/");
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(
queryUri,
projection,
selection,
null, // Selection args (none).
MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order.
);
Bitmap bitmap;
//Now i will traverse the cursor and get the bitmap thumbnail for every item
for( int i = 0 ; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
long elementId = cursor.getLong(0);
// code to get the thumbail using the item id
// using method MediaStorage.Video.Thumbnails.getThumbnail
// and MediaStorage.Image.Thumbnails.getThumbnail
}
}
问题是查询不起作用并且它返回 null 我不知道为什么。我使用的路径 returns "/storage/emulated/0/Movies/AzloAR" 并且该文件夹中有 .mp4 和 .jpg 文件。
你能帮帮我吗? :)
另一个问题,我怎么知道(有条件的)光标的项目是视频还是图像。
我发送给查询的 URI 无效。查询需要一个 content://
样式的 URI,这是通过使用 MediaStore 类 的方法和字段生成的,例如 MediaStore.Files.getContentUri(String volumeName)
或 MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
.
我正在做一种从特定路径获取所有图像和视频的方法,然后获取这些的缩略图并将它们放在另一个路径中。我得到以下信息:
public void getThumbnails(String persistentDataPath) {
// Get relevant columns for use later.
String[] projection = {
MediaStore.Files.FileColumns._ID,
MediaStore.Files.FileColumns.DATA,
MediaStore.Files.FileColumns.DATE_ADDED,
MediaStore.Files.FileColumns.MEDIA_TYPE,
};
// Return only video and image metadata.
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE
+ " OR "
+ MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO;
Uri queryUri = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES).toString() + "/Azlo/");
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(
queryUri,
projection,
selection,
null, // Selection args (none).
MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order.
);
Bitmap bitmap;
//Now i will traverse the cursor and get the bitmap thumbnail for every item
for( int i = 0 ; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
long elementId = cursor.getLong(0);
// code to get the thumbail using the item id
// using method MediaStorage.Video.Thumbnails.getThumbnail
// and MediaStorage.Image.Thumbnails.getThumbnail
}
}
问题是查询不起作用并且它返回 null 我不知道为什么。我使用的路径 returns "/storage/emulated/0/Movies/AzloAR" 并且该文件夹中有 .mp4 和 .jpg 文件。
你能帮帮我吗? :)
另一个问题,我怎么知道(有条件的)光标的项目是视频还是图像。
我发送给查询的 URI 无效。查询需要一个 content://
样式的 URI,这是通过使用 MediaStore 类 的方法和字段生成的,例如 MediaStore.Files.getContentUri(String volumeName)
或 MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI
.