Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android设备上获取所有视频_Android - Fatal编程技术网

如何在Android设备上获取所有视频

如何在Android设备上获取所有视频,android,Android,我如何才能在安装了我的应用程序的Android设备上获得所有视频及其路径的列表 编辑: 我正在尝试制作一个简单的视频播放器,所以我的想法是显示设备上可以找到的所有视频,并在列表项单击中播放。 唯一的问题是,我不知道如何获得有关视频的信息,所以如果有人能帮助我,我将非常感激 String[] projection = { MediaStore.Video.Media._ID}; Cursor cursor = new CursorLoader(contexts, MediaStore.Video.

我如何才能在安装了我的应用程序的Android设备上获得所有视频及其路径的列表

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

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获取所有视频。

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

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;
}
public ArrayList getAllMedia(){
HashSet videoItemHashSet=新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);
试一试{
cursor.moveToFirst();
做{
添加((cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA)));
}while(cursor.moveToNext());
cursor.close();
}捕获(例外e){
e、 printStackTrace();
}
ArrayList downloadedList=新的ArrayList(videoItemHashSet);
返回下载列表;
}
尝试以下代码

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());
}
private void getVideoList(){
Uri Uri=MediaStore.Video.Media.EXTERNAL\u CONTENT\u Uri;
String[]projection={MediaStore.Video.VideoColumns.DATA};
Cursor Cursor=getContentResolver().query(uri、投影、null、null、null);
ArrayList路径ArrList=新建ArrayList();
如果(光标!=null){
while(cursor.moveToNext()){
pathArrList.add(cursor.getString(0));
}
cursor.close();
}
Log.e(“所有路径”,pathArrList.toString());
}

我没有尝试过任何东西,也不知道从哪里开始。我在互联网上找不到任何对我有帮助的东西,所以我还没有尝试过任何东西。现在,我完成了应用程序的其余部分,但只遗漏了选择要播放的视频。我在相关专栏中发现了这一点,在那里-->还有更多有用的链接,以及Preet Sangha的链接。祝你好运可能重复的内容非常有用->stackoverflow.com/q/2911124/1267661谢谢你的帮助,很抱歉重复发布。如果以编程方式创建了文件夹,则不适用于我。如果以编程方式创建了文件夹,请检查此项不适用于我。stackoverflow.com/questions/48934159/…请检查此项花费太多时间重复视频。如何加速?我想从设备获取所有视频路径