以前に記録されたファイルから期間などの特定のビデオファイルの詳細を取得するのに苦労しています。私が現在できることはcursor
、すべてのファイルを取得してから、1つずつループすることだけです。
Cursor cursor = MediaStore.Video.query(getContext().getContentResolver(), MediaStore.Video.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Video.VideoColumns.DURATION,MediaStore.Video.VideoColumns.DATE_TAKEN,MediaStore.Video.VideoColumns.RESOLUTION,MediaStore.Video.VideoColumns.DISPLAY_NAME});
if(cursor.moveToFirst())
while(!cursor.isLast()){
if(cursor.getString(3)==fight.filename)
{
// do something here
}
cursor.moveToNext();
}
ただし、特定のファイルの詳細にアクセスする必要があるため、作成しようとしましたが、返さURI
れる運が常にありません。どこが間違っているのですか?cursor
null
Uri uri = Uri.parse(Environment.DIRECTORY_DCIM+"/FightAll_BJJ_Scoring/"+(fight.filename));
Cursor cursor = MediaStore.Video.query(getContext().getContentResolver(), uri, new String[]{MediaStore.Video.VideoColumns.DURATION,MediaStore.Video.VideoColumns.DATE_TAKEN,MediaStore.Video.VideoColumns.RESOLUTION,MediaStore.Video.VideoColumns.DISPLAY_NAME});
// cursor is always null here
編集:以下のzapl回答のおかげで、以下のコードを取得しました(カーソル行を変更したことに注意してください)が、返されるカーソルはnullではありませんが、まだ空であり、cursor.getString(2)を読み取ろうとすると何も取得されません。
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String selection = MediaColumns.DATA + "=?";
String[] selectionArgs = { Environment.DIRECTORY_DCIM+"/FightAll_BJJ_Scoring/"+(fight.filename) };
Cursor cursor = getContext().getContentResolver().query(uri, new String[]{MediaStore.Video.VideoColumns.DURATION,MediaStore.Video.VideoColumns.DATE_TAKEN,MediaStore.Video.VideoColumns.RESOLUTION,MediaStore.Video.VideoColumns.DISPLAY_NAME}, selection, selectionArgs, null);
どんな助けでも大歓迎です。