В моем приложении я выбираю видео с помощью Intent следующим образом:
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, SELECT_VIDEO);
Затем URI видео сохраняется в базе данных в формате String
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == SELECT_VIDEO) {
Uri selectedVideoUri = data.getData();
if (selectedVideoUri != null) {
videoPathList.add(selectedVideoUri.toString());
Я читаю строку из базы данных, преобразую ее в uri с помощью метода Uri.parse () и использую ее для воспроизведения видео. Однако я получаю ошибку «Не могу воспроизвести видео».
VideoView videoView =(VideoView)findViewById(R.id.videoView);
//Creating MediaController
MediaController mediaController= new MediaController(this);
mediaController.setAnchorView(videoView);
Uri uri= Uri.parse(getIntent().getStringExtra("video_path"));
//Setting MediaController and URI, then starting the videoView
videoView.setMediaController(mediaController);
videoView.setVideoURI(uri);
videoView.requestFocus();
videoView.start();
Видео воспроизводится нормально, если я играю, используя uri, полученный в onActivityResult (). Проблема возникает только после сохранения URI в базе данных в строковом формате. Как мне это решить?