需要帮助从录制的视频Uri获取文件

我有两个活动。Activity1打开Activity2


Intent intent = new Intent(getContext(), Activity2.class);

startActivityForResult(intent, CAMERA_VIDEO_RESULT)

Activity2使用MediaRecorder允许用户捕获视频。首先,我准备在File中onCreate:


 mRecordedFile = getOutputMediaFile(this, MEDIA_TYPE_VIDEO);

这里使用的方法是从Google的示例中借来的,就像我创建文件的方式一样:


 private static File getOutputMediaFile(Context context, int type){

        File mediaStorageDir = new File(context.getExternalFilesDir(

                Environment.DIRECTORY_PICTURES), "MyCameraApp");


        if (! mediaStorageDir.exists()){

            if (! mediaStorageDir.mkdirs()){

                Log.d("MyCameraApp", "failed to create directory");

                return null;

            }

        }


        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

        File mediaFile;

        if (type == MEDIA_TYPE_IMAGE){

            mediaFile = new File(mediaStorageDir.getPath() + File.separator +

                    "IMG_"+ timeStamp + ".jpg");

        } else if(type == MEDIA_TYPE_VIDEO) {

            mediaFile = new File(mediaStorageDir.getPath() + File.separator +

                    "VID_"+ timeStamp + ".mp4");

        } else {

            return null;

        }


        return mediaFile;

    }

我将其设置为输出File:


mMediaRecorder.setOutputFile(mRecordedFile.getAbsolutePath());


所以,回到中Activity1,我Uri在onActivityResult方法中检索到了这个,data只是返回了Intent:


Uri uri = data.getData();

到目前为止,看起来还不错。本Uri看起来是这样的:


file:///storage/emulated/0/Android/data/com.mycameraapp.demo/files/Pictures/MyCameraApp/VID_20180713_091027.mp4


最终,我尝试将其检索并将其转换回a,File因为我需要将其上传到服务器。以下是相关的位:


 String filePath = uri.getPath();

 File file = new File(filePath);

在File这个创造是空白,具有长度为0的我一直在打我的头撞在墙上在这一个,但是,感觉就像我必须失去了一些东西明显。有什么建议吗?


牛魔王的故事
浏览 169回答 1
1回答

凤凰求蛊

您知道,您可能应该发布所有代码。可能发生的事情甚至与您发布的代码无关。您可能在用户点击停止录制按钮之后立即再次设置输出文件,从而覆盖了他们刚刚制作的文件。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java