2016-08-09 229 views
0

Ich versuche, Video Player-Funktion in meiner Unity3D-Android-App zu implementieren. Möchte wissen, wie Sie auf alle Videodateien zugreifen können, die auf dem Gerätespeicher vorhanden sind. Bisher konnte ich Liste der MP4-Dateien auf Application.persistentDataPath mit diesem erhalten:Abrufen aller Videodateien auf Android-Gerät

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; 
} 

Um das gleiche Stück Code für gesamte Gerätespeicher und SD-Karte verwenden, Wo soll ich von meiner Suche beginnen?

EDIT:

Bitte beachten Sie, dass ich in Unity3D mit C# und über Code arbeite funktioniert gut. Also wäre ein Java-Code nicht hilfreich. Stattdessen muss ich absolute Pfad auf Android-Gerät Speicher für die ich über Verfahren wie folgt aufrufen können: DirSearch(needThisPathAddressForAndroidRootFolder)

Dank

+0

Mögliches Duplikat [Wie alle Videodateien auf dem Gerät zur Liste] (https://stackoverflow.com/questions/39399361/how-to-list-all-video-files-on-device) – Mick

+0

@Mick Diese Frage ist für unity3D C#, während Ihre verknüpfte Frage für native Android ist. –

Antwort

0

Abfrage der MediaStore Content-Provider

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

Ein Beispiel

könnte
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(); 
    } 
} 

Vielen Dank slartibartfast

Referenced By

+0

Ich arbeite in Unity3D, so dass nativer Code nicht hilft. Ich freue mich über Ihre Antwort –

+0

Vielen Dank für Ihren Kommentar – Developer