4

如何获取可以在安装了我的应用程序的 Android 设备上找到的所有视频及其路径的列表?

编辑:我正在尝试制作一个简单的视频播放器,因此想法是显示设备上可以找到的所有视频并在列表项单击时播放。唯一的问题是我不知道如何获取有关视频的信息,所以如果有人可以帮助我,我将非常感激。

4

3 回答 3

4

如果有人仍在寻找答案,请尝试此方法。此方法将返回所有媒体的路径列表。

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;
}
于 2017-02-07T20:12:10.707 回答
2
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 获取所有视频。

于 2013-02-05T13:16:18.083 回答
1

试试下面的代码。

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());
}
于 2017-09-18T12:04:07.973 回答