我遇到了一个问题,当我的测试手机录制视频,没有一个外部SD卡。我记录错误是因为:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)

指向外部SD卡,由于外部SD卡不存在,因此手机不够智能,无法指向内部存储器。
这个问题有解决办法吗?
如果没有,如何直接记录到内部存储器?

最佳答案

如果要测试SD卡是否存在,请阅读documentation on Environment.getExternalStorageState()。这包括演示如何测试SD卡是否已安装、可读和/或可写的代码。它甚至注册了一个广播接收器,如果在你的应用程序运行时卡被删除。
因此,当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");

关于android - 如何将视频录制到内部存储中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11507111/

10-10 10:37