onActivityResult аварийно завершает работу, если задано пользовательское местоположение для видео (MediaStore.EXTRA_OUTPUT, URI) - PullRequest
0 голосов
/ 04 октября 2018

Итак, это моя установка для «намерения»:

Intent cameraACTION_VIDEO_CAPTURE = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);

tempUri = accessLocalStorage.getThisAppsStorageUriPath();

//Crashed for tempUri = "/data/user/0/hardy.android.go/app_files/test.mp4"
//Crashed for tempUri = "/data/user/0/hardy.android.go/app_files/"
cameraACTION_VIDEO_CAPTURE.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);

cameraACTION_VIDEO_CAPTURE.setFlags(cameraACTION_VIDEO_CAPTURE.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY);

startActivityForResult(cameraACTION_VIDEO_CAPTURE, 
Integer.parseInt( DataModel.SETVIDEORECORDING.toString()));

Цель видео начинается, как и ожидалось, и падает, когда я заканчиваю запись - он даже не переходит в «onActivityResult».Ошибка:

 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference

Не знаете, почему там всплывает растровое изображение?

Anywayz, поэтому, пытаясь определить проблему, я комментирую следующееи снова:

cameraACTION_VIDEO_CAPTURE.putExtra(MediaStore.EXTRA_OUTPUT, tempUri);

и это работает :( - видео хранится здесь:

/storage/emulated/0/DCIM/Camera/VID_20181004_213440310_HDR.mp4

1 Ответ

0 голосов
/ 11 октября 2018

Хорошо, у меня есть частичный ответ.Что касается сбоя приложения, я добился прогресса, используя FileProvider для генерации Uri.

tempUri = FileProvider.getUriForFile(
context,
BuildConfig.APPLICATION_ID + ".provider",
new File(accessLocalStorage.getThisAppsStorageUriPath().getPath())
);

Однако видеофайл, сохраненный по пути в Uri, имел размер /длина 0 () и у меня не было времени проработать это и так, эта история заканчивается здесь :( - надеюсь, что это поможет другим!

...