Pfad der Videodatei aus der Galerie erhalten erhalten NULL
. Wie bekomme ich den Pfad der Videodatei? Get URi in Aktivität Ergebnis geben auch null. Umwandlung von Uri in String auch immer Null
.Pfad der ausgewählten Videodatei aus der Galerie wird mit NULL abgerufen. Wie bekomme ich den Pfad der Videodatei?
Intent intent;
String selectedVideo1Path, selectedVideo2Path;
EditText e1,e2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos_activity);
Button button1 = (Button) findViewById(R.id.video1_btn);
Button button2 = (Button) findViewById(R.id.video2_btn);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectVideoFromGallery();
startActivityForResult(intent, 101);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
selectVideoFromGallery();
startActivityForResult(intent, 102);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 101) {
if (data.getData() != null) {
selectedVideo1Path = getPath(data.getData());
Toast.makeText(MergeVideosActivity.this, "Path 1 : "+selectedVideo1Path, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Failed to select video", Toast.LENGTH_LONG).show();
}
}
if (requestCode == 102) {
if (data.getData() != null) {
selectedVideo2Path = getPath(data.getData());
//String str2 = selectedVideo2Path.toString();
// e2.setText(str2);
Toast.makeText(MergeVideosActivity.this, "Path 2 : "+selectedVideo2Path, Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "Failed to select video", Toast.LENGTH_LONG).show();
}
}
}
Das ist mein getPath method
public String getPath(Uri uri) {
int column_index = 0;
String[] projection = {MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(uri, projection, null, null, null);
if (cursor != null) {
column_index = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
cursor.moveToFirst();
}
return cursor.getString(column_index);
}
Ausgewählte Video aus der Galerie hoffe, dass ich sein OK? Prüfen Sie es
public void selectVideoFromGallery() {
if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.EXTERNAL_CONTENT_URI);
} else {
intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Video.Media.INTERNAL_CONTENT_URI);
}
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
}
}
welche Version von Android Sie verwendet zu testen. – USKMobility
NeXus 4 (5.1.1) API 22 –
Es gibt keine Voraussetzung für "ACTION_GET_CONTENT", um Ihnen ein 'Uri' zurückzugeben, das einer Datei zugeordnet ist, auf die Sie zugreifen können. Der Benutzer kann eine Datei auf einem Wechselspeicher oder im internen Speicher einer anderen App (z. B. Dropbox) oder einer verschlüsselten Datei usw. auswählen. Je eher Sie aufhören, über Dateipfade zu denken, desto wahrscheinlicher ist es für Sie wird Erfolg haben. – CommonsWare