如何在Android中获取所有视频

时间:2016-08-06 05:16:57

标签: android video

我想在android中获取所有视频信息,我尝试过使用

Cursor cursor = context.getContentResolver().query(  
                MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null,  
                null, null);  

但是,这只能获取我拍摄的视频。我想获取手机中的所有视频,不仅包括我拍摄的视频,还包括我从互联网上下载的视频。

1 个答案:

答案 0 :(得分:0)

试试这个

public void eachAllMedias(File f) {
    if (f != null && f.exists() && f.isDirectory()) {
        File[] files = f.listFiles();
        if (files != null) {
            for (File file : f.listFiles()) {
                if (file.isDirectory()) {
                    eachAllMedias(file);

                } else if (file.exists() && file.canRead()
                        && FileUtils.isVideoOrAudio(file)) {
                    list.add(file.getName());
                }
            }
        }
    }
}

这是FileUtils

public class FileUtils {

/**
 * @throws Exception */
public static boolean isVideoOrAudio(File f)  {
    final String ext = getFileExtension(f);
    ArrayList<String> list = new ArrayList<String>();
    list.add("avi");
    list.add("rmvb");
    list.add("wmv");
    list.add("mkv");
    list.add("mp4");

    return list.contains(ext);

}

/**  
 * @throws Exception */
public static String getFileExtension(File f) {
    if (f != null) {
        String filename = f.getName();
        int i = filename.lastIndexOf('.');
        if (i > 0 && i < filename.length() - 1) {
            return filename.substring(i + 1).toLowerCase();
        }

    }
    return null;
}