我正在制作一款应用,让您可以拍摄照片/视频,或者在发送之前选择现有的照片/视频。我设置目录以保存文件:
String appName = Main.this.getString(R.string.app_name);
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory
(Environment.DIRECTORY_PICTURES), appName);
我在这里命名文件
File mediaFile;
Date now = new Date();
String timestamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(now);
String path = mediaStorageDir.getPath() + File.separator;
if(mediaType == MEDIA_TYPE_PHOTO){
mediaFile = new File(path + "IMG_" + timestamp + ".jpg");
} else if(mediaType==MEDIA_TYPE_VIDEO){
mediaFile = new File(path + "VID_" + timestamp + ".mp4");
}
因此,我使用正确的带时间戳格式将照片保存在/storage/emulated/0/pictures/(app name)
下。但是,我的视频正在保存到/storage/emulated/0/DCIM/100MEDIA
,并且名称为VIDEO0073
,VIDEO00074
等。我尝试将目录名称更改为MOVIES
而不是PICTURES
}或DCIM
,但没有效果。我正在使用运行Android 4.3的HTC One
答案 0 :(得分:0)
这是包括HTC One在内的某些设备上发生的错误。如果您在声明视频时包含您的代码意图我可以更准确地回答问题,但基本上,在您声明视频的意图(而不是图像)之后,让你的Uri如此:
videoUri = getContentResolver()。insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,new ContentValues());
在这种情况下,视频将保存在/ storage / emulated / 0 / video文件夹中,而不是上面提到的图片或dcim文件夹。