如何获取可以在安装了我的应用程序的 Android 设备上找到的所有视频及其路径的列表?
编辑:我正在尝试制作一个简单的视频播放器,因此想法是显示设备上可以找到的所有视频并在列表项单击时播放。唯一的问题是我不知道如何获取有关视频的信息,所以如果有人可以帮助我,我将非常感激。
如何获取可以在安装了我的应用程序的 Android 设备上找到的所有视频及其路径的列表?
编辑:我正在尝试制作一个简单的视频播放器,因此想法是显示设备上可以找到的所有视频并在列表项单击时播放。唯一的问题是我不知道如何获取有关视频的信息,所以如果有人可以帮助我,我将非常感激。
如果有人仍在寻找答案,请尝试此方法。此方法将返回所有媒体的路径列表。
public ArrayList<String> getAllMedia() {
HashSet<String> videoItemHashSet = new HashSet<>();
String[] projection = { MediaStore.Video.VideoColumns.DATA ,MediaStore.Video.Media.DISPLAY_NAME};
Cursor cursor = getContext().getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
try {
cursor.moveToFirst();
do{
videoItemHashSet.add((cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA))));
}while(cursor.moveToNext());
cursor.close();
} catch (Exception e) {
e.printStackTrace();
}
ArrayList<String> downloadedList = new ArrayList<>(videoItemHashSet);
return downloadedList;
}
String[] projection = { MediaStore.Video.Media._ID};
Cursor cursor = new CursorLoader(contexts, MediaStore.Video.Media.EXTERNAL_CONTENT_URI, projection,
null, // Return all rows
null, null).loadInBackground();
有了光标后,您可以对其进行迭代并使用视频 ID 获取所有视频。
试试下面的代码。
private void getVideoList() {
Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
String[] projection = {MediaStore.Video.VideoColumns.DATA};
Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
ArrayList<String> pathArrList = new ArrayList<>();
if (cursor != null) {
while (cursor.moveToNext()) {
pathArrList.add(cursor.getString(0));
}
cursor.close();
}
Log.e("all path",pathArrList.toString());
}