0
私は、特定のパスからすべてのイメージとビデオを取得し、これらのサムネイルを取得して別のパスに入れる方法を行っています。パスからイメージとビデオのサムネイルを取得する方法
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がなぜわからないということです。 iパスは "/ storage/emulated/0/Movies/AzloAR"を返し、そのフォルダ内に.mp4と.jpgファイルがあります。
お願いします。 :)
もう1つの質問ですが、カーソルの項目が動画か画像かを(条件付きで)どのように知ることができますか?
この似たような質問に対する回答は、 https://stackoverflow.com/questions/13080540/what-causes-androids-contentresolver-query-to-return-null – TheAtomicOption