我有两个活动。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的我一直在打我的头撞在墙上在这一个,但是,感觉就像我必须失去了一些东西明显。有什么建议吗?
凤凰求蛊
相关分类