Android端末に保存されている動画一覧を取得する
MediaStore.Video.MediaテーブルクエリしてMediaStoreクラスを使用して、ローカルのビデオリストを取得できます。以下にそのサンプルコードを示します。
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
public class LocalVideoFetcher {
public static List<String> getVideoList(Context context) {
List<String> videoList = new ArrayList<>();
ContentResolver contentResolver = context.getContentResolver();
// 查询视频
String[] projection = {MediaStore.Video.Media.DATA};
Cursor cursor = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
String videoPath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
videoList.add(videoPath);
}
cursor.close();
}
return videoList;
}
}
上記のメソッドを呼び出す時には、Contextオブジェクトを渡す必要があります。例えば、Activity内で、ローカルのビデオのリストを取得するには、以下のように呼び出します:
List<String> videos = LocalVideoFetcher.getVideoList(this);
AndroidManifest.xmlファイルに次の権限を追加する必要があるかもしれないので、ローカルの動画一覧を取得する際には注意してください:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />