Я пытаюсь загрузить видео.Что я сделал, так это то, что я скачал один пример видео и пытаюсь выбрать видео с помощью намерения.Я ожидаю, что файл, который я выберу, я получу, передам в сеть и загрузю.Поскольку у меня нет никакого опыта в этом деле, мне трудно с этим справиться.
private void getFile() {
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Video"), REQUEST_CODE_PICKER);
}
Когда я выбираю видео, я получаю uri onActivityResult
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
String uriPath = uri.getPath(); // uriPath = "/document/video:7876"
File fileToUpload = new File(uriPath); // fileToUpload = ""
String videoPath = getRealVideoPathFromURI(getContentResolver(),uri); // videoPath = "/storage/emulated/0/Download/testVideo.mp4"
File videoFile = new File(videoPath); // videoFile = ""
uploadFile(videoFile);
}
}
Я попробовал оба пути (realPath и uriPath), чтобы посмотреть, получу ли я какой-либо файл.Если я отлаживаю, я вижу, что оба fileToUpload и videoFile is "".Чтобы добавить, все разрешения на чтение и запись даны.
вот код для получения реального пути видео от uri
String getRealVideoPathFromURI(ContentResolver contentResolver ,
Uri contentURI){
Cursor cursor = contentResolver.query(contentURI, null, null, null, null);
if (cursor == null)
return contentURI.getPath();
else {
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Video.VideoColumns.DATA);
try {
return cursor.getString(idx);
} catch (Exception exception) {
return null;
}
}
}
Может кто-нибудь помочь мне понятьчто я делаю не так?Все, что мне нужно, это загрузить выбранный видеофайл.Это то, как я делаю это неправильно?Если так, то каков правильный способ сделать это?Поскольку я не задаю вопросы без поиска и не смог выяснить, попробуйте дать мне правильный ответ, который поможет мне разобраться в этом.Возможно, мой подход неправильный, может быть проблема с устройством и т. Д.Спасибо