获取在Android应用中捕获的最新视频的路径

时间:2019-06-24 16:18:40

标签: android android-studio video android-intent android-internal-storage

我正在创建一个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捕获的最新视频的路径? (我需要这样做,因为在显示预览后,我还需要将其发送到服务器)

0 个答案:

没有答案