如何将视频录制到内部存储?

时间:2012-07-16 15:06:53

标签: android video storage internal

当我的测试手机录制视频并且没有外置SD卡时,我遇到了问题。我得到录音错误,因为:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)

指向外部SD卡,由于外部SD不存在,手机不够智能,无法指向内部存储。

  1. 这个问题有解决方法吗?

  2. 如果没有,我该如何直接录制到内部存储?

2 个答案:

答案 0 :(得分:3)

如果您想测试SD卡是否存在,请阅读documentation on Environment.getExternalStorageState()。这包括演示如何测试SD卡是否已安装,可读和/或可写的代码。如果在您的应用运行时移除卡,它甚至会注册一个BroadcastReceiver。

如果SD卡不可行,您可以将保存的文件转移到内部存储器。

添加评论

您没有提供有关当前如何测试SD卡可用性的任何详细信息,因此我概括了该过程。

MediaRecorder mediaRecorder = new MediaRecorder();
...

String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state))
    mediaRecorder.setOutputFile(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) + "/video.mp4");
else
    mediaRecorder.setOutputFile(getFilesDir().getAbsolutePath() + "/video.mp4");

答案 1 :(得分:-1)

试试这个article

您基本上想要致电openFileOutput(String fileName, MODE_PRIVATE)。这将返回FileOutputStream供您使用。调用write()写入文件,然后调用close()进行清理。请注意,MODE_PRIVATE会使文件对您的应用程序保密。