3

当我的测试手机录制视频并且没有外部 sd 卡时,我遇到了问题。我收到记录错误,因为:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)

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

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

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

4

2 回答 2

3

如果要测试 SD 卡是否存在,请阅读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");
于 2012-07-16T15:36:28.690 回答
-1

试试这篇文章

你基本上想打电话给openFileOutput(String fileName, MODE_PRIVATE). 这将返回一个FileOutputStream供您使用。调用write()写入文件,然后调用close()清理。请注意,这MODE_PRIVATE将使文件对您的应用程序私有。

于 2012-07-16T16:04:11.760 回答