2017-12-31 98 views
0

Derzeit ist meine Absicht, ein Video zu erfassen, und danach bekomme ich einen Verweis auf den Pfad des Videos (dieses Video wird lokal in der Speicherdatei gespeichert), dann speichere ich der Pfad des Videos in einer Datenbank und dann, wenn ich dieses Video abspielen möchte, wandle ich diesen Pfad in einen URI um und spiele das Video ab.Wie man einen Pfad zu uri konvertiert

dieser Code meinen Versuch erklärt so zu tun:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { 
     Uri videoUri = intent.getData(); 
     String path = videoUri.getPath(); 
     Uri uri2 = Uri.fromFile(new File(path)); 
     v.setVideoURI(uri2); 
     v.start(); 
    } 
} 

wobei V eine Videoview

wenn ich versuche, auf den Videoview zu setzen uri2 (v) i einen Fehler, dass ich nicht play dieses Video.

kann jemand sagen, was ich falsch gemacht habe.

+0

mit Warum verwendest du nicht nur 'videoUri'? Warum versuchst du ein vorhandenes 'Uri' (' videoUri') in ein 'String' zu konvertieren, dann in ein' File', dann in ein anderes 'Uri'? – CommonsWare

+0

@CommonsWare Ich habe versucht, meinen Versuch zu abstrahieren, weil ich den Pfad (String) in einer Datenbank speichern möchte, dann diese Zeichenfolge zurück und konvertiere es als URI und spiele das Video – zuest

+0

"weil ich den Pfad (String) speichern möchte eine Datenbank "- warum nicht die' Uri' in der Datenbank speichern? Schließlich kann ein 'Uri' von und zu einem' String' konvertiert werden. Hast du den 'Uri' angeschaut? Wie sieht der Uri aus? Wenn das 'Uri' ein 'content'-Schema hat, ist es möglich, dass Sie in Zukunft nicht auf den Inhalt zugreifen können, da Ihr Lesezugriff auf diesen Inhalt nach Ablauf Ihres Prozesses möglicherweise verfallen kann. – CommonsWare

Antwort

0

Bitte versuchen Sie es wie diese

Uri.fromFile(new File("/sdcard/sample.jpg")) 
+0

Hallo danke für die Antwort für meinen Fall im tun Uri uri2 = Uri.fromFile (neue Datei (Pfad)); was ist los? – zuest

+0

Wenn möglich, könnten Sie bitte den Wert des Pfades angeben, den Sie bekommen? – lib4

+0

Bitte überprüfen Sie, ob das Video im MediaStore gespeichert wird. – lib4

0

i mein Problem mit Hilfe von @CommonsWare Vorschlag löste das uri selbst in der Datenbank zu speichern und dies geschehen könnte die folgenden

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) { 
     Uri videoUri = intent.getData(); 
     String s = videoUri.toString(); 
     Uri mUri = Uri.parse(s); 
     v.setVideoURI(mUri); 
     v.start(); 
    } 
} 
Verwandte Themen