Получить путь к последнему видео, снятому в приложении Android - PullRequest
0 голосов
/ 24 июня 2019

Я создаю приложение для Android, которое вызывает встроенную камеру для захвата видео, а затем отображает его в предварительном просмотре.

Это код.

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        vid1 = (VideoView) findViewById(R.id.videoView);
        btn1 = (Button) findViewById(R.id.button);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i1 = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
                if(i1.resolveActivity(getPackageManager()) != null) {
                    startActivityForResult(i1, 123);
                }
            }
        });
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        if(requestCode == 123 && resultCode == RESULT_OK) {
            Log.d("hi", data.getData().getPath());
            Uri myvideolink = data.getData();
            vid1.setVideoURI(myvideolink);
        }
    }

Что происходит, data.getData() указывает мне путь от внешнего хранилища, тогда как видео сохраняется во внутреннем хранилище, в папке DCIM. То есть лог-оператор,

Log.d("hi", data.getData().getPath());

дает мне это

/hi: /external/video/media/162872

Итак,

  1. Как мне избежать этого и получить правильный путь, чтобы видео отображалось в предварительном просмотре?
  2. Существуют ли какие-либо команды / библиотеки, с помощью которых я могу получить путь к самому последнему видео, захваченному из внутреннего хранилища DCIM? (Мне это нужно, потому что после предварительного просмотра мне также нужно отправить его на сервер)
...