У меня большая проблема, я искал ответ и не получил его. если эмулировать в эмуляторе по умолчанию из Android Studio и onActivityResult вернул цель для моей видеозаписи, когда я эмулирую в телефоне Motorola g 6 с android 9, он ничего не возвращает.
здесь мой код ...
private void record() {
Intent intent=new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
if(intent.resolveActivity(getActivity().getPackageManager())!=null){
new_video_file=getFilePath();
Uri uri = FileProvider.getUriForFile(getActivity(),
BuildConfig.APPLICATION_ID + ".provider",new_video_file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(intent,VIDEO_REQUEST);
}
}
OnActivityForResult ....
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == VIDEO_REQUEST && resultCode == RESULT_OK) {
ParseQuery<ParseObject> query = ParseQuery.getQuery("CitaTestDrive");
query.getInBackground(idEventoTestDrive, new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException e) {
videoUri = data.getData();
String file = videoUri.getPath();
File inputFile = new File(file);
try {
fileInputStream = new FileInputStream(inputFile);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
Bitmap thumbnailBm = BitmapFactory.decodeStream(fileInputStream);
ByteArrayOutputStream st = new ByteArrayOutputStream();
thumbnailBm.compress(Bitmap.CompressFormat.JPEG, 50, st);
byte[] byteArr = st.toByteArray();
Date currentTime = Calendar.getInstance().getTime();
ParseFile thumbFile = new ParseFile("TestDrive" + " " + currentTime + " " + nombreAsesor + ".jpg", byteArr);
object.put("Video", thumbFile);
object.saveInBackground(new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Toast.makeText(getActivity(), "Video uploaded to server", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), e.toString(), Toast.LENGTH_LONG).show();
}
}
});
получить метод пути к файлу ....
private File getFilePath() {
File folder = new File(getActivity().getExternalFilesDir(null), "test_drives");
if (!folder.exists()) {
folder.mkdir();
}
Date currentTime = Calendar.getInstance().getTime();
video_file = new File(folder, "test_drives_" + currentTime + ".mp4");
return video_file;
}
ОБНОВЛЕНИЕ ---- - Я сделал то, что вы предлагаете, чтобы получить путь Ури. и ....
Также заблокируйте, как я получил путь