检索Android设备上的所有视频文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检索Android设备上的所有视频文件相关的知识,希望对你有一定的参考价值。

我正在尝试在Unity3D-android应用程序中实现视频播放器功能。想知道如何访问设备存储中存在的所有视频文件。到目前为止,我可以使用以下命令获取Application.persistentDataPath上的MP4文件列表:

private List<string> DirSearch(string sDir)
{
    List<string> files = new List<string>();
    try
    {
        foreach (string f in Directory.GetFiles(sDir,"*.mp4"))
        {
            files.Add(f);
        }
        foreach (string d in Directory.GetDirectories(sDir))
        {
            files.AddRange(DirSearch(d));
        }
    }
    catch (Exception ex)
    {
        Debug.LogError(ex.Message);
    }

    return files;
}

要为整个设备存储和SD卡使用相同的代码,我应该从哪里开始搜索?

编辑:

请注意,我使用C#在Unity3D中工作,上面的代码工作正常。所以java代码没有帮助。相反,我需要Android设备存储上的绝对路径,我可以在上面调用这样的方法:DirSearch(needThisPathAddressForAndroidRootFolder)

谢谢

答案

查询MediaStore内容提供商

http://developer.android.com/reference/android/provider/MediaStore.html

一个例子可能是

public static void printNamesToLogCat(Context context) {
    Uri uri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
    String[] projection = { MediaStore.Video.VideoColumns.DATA };
    Cursor c = context.getContentResolver().query(uri, projection, null, null, null);
    int vidsCount = 0;
    if (c != null) {
        vidsCount = c.getCount();
        while (c.moveToNext()) {
            Log.d("VIDEO", c.getString(0));
        }
        c.close();
    }
}

谢谢你slartibartfast

Referenced By

以上是关于检索Android设备上的所有视频文件的主要内容,如果未能解决你的问题,请参考以下文章

Android 7 上的 VideoView 错误

将设备上的视频流式传输到 videoview - Android

Android 从片段中检索 Json 并在另一个活动中使用

当替换片段视频仍在android中播放背景时

从 YouTube API 仅检索支持移动设备的视频

从 YouTube API 仅检索支持移动设备的视频