好的,我已经筋疲力尽了所有链接,似乎无法找到答案。
我已按照this guide创建了一个视频摄像头应用,但我似乎无法保存该文件。
在教程中谈到了保存到外部存储器,我正在开发的手机是谷歌Nexus 4,并没有外部存储器!所以我试图保存到内部存储器,但我不知道如何使用视频。我也阅读了storage options指南,但我再次发现这个用处很少......
理想情况下,我想这样做,以便录制的视频显示在画廊中,这样任何协助/指向正确的方向都会很棒!我当前的保存方法如下所示,在android教程中复制了这些方法。我知道这里的代码需要编辑,但我也不确定。
/** Create a file Uri for saving an image or video */
private static Uri getOutputMediaFileUri(int type){
return Uri.fromFile(getOutputMediaFile(type));
}
/** Create a File for saving an image or video */
private static File getOutputMediaFile(int type){
// To be safe, you should check that the SDCard is mounted
// using Environment.getExternalStorageState() before doing this.
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "MyCameraApp");
// This location works best if you want the created images to be shared
// between applications and persist after your app has been uninstalled.
// Create the storage directory if it does not exist
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.d("MyCameraApp", "failed to create directory");
return null;
}
}
// Create a media file name
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;
}
也许我错过了一些明显的东西,但我现在花了六个小时看着这个尝试不同的东西。提前致谢!
答案 0 :(得分:0)
在教程中,它讨论了保存到外部存储器
它被称为“外部存储”。你可以通过reading告诉我们。
我正在开发的手机是谷歌Nexus 4,没有外部存储器
每个Android兼容设备都支持可用于保存文件的共享“外部存储”。这可以是可移动存储介质(例如SD卡)或内部(不可移动)存储。保存到外部存储器的文件是世界可读的,当用户启用USB海量存储器在计算机上传输文件时,用户可以对其进行修改。
使用外部存储器的内部存储分区的设备也可能提供SD卡插槽。在这种情况下,SD卡不是外部存储的一部分,您的应用程序无法访问它(额外的存储空间仅适用于系统扫描的用户提供的介质)。
教程的代码显示请求将视频保存到外部存储。您的设备有外部存储空间。