标签:android android-sdcard android-mediarecorder android-external-storage
我有以下方法,它适用于Android 4.3或更早版本的内部存储和外部SD卡:
public void Recorder_Prepare() {
recorder = new MediaRecorder();
recorder.setPreviewDisplay(holder.getSurface());
mCamera.unlock();
recorder.setCamera(mCamera);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setProfile(camcorderProfile);
recorder.setVideoSize(ResolutionWidth, ResolutionHeight);
File DirectoryExistCheck = new File(VideoFolderAbsolutePATH);
if(!DirectoryExistCheck.exists()) {
DirectoryExistCheck.mkdir();
}
String VideoPath = VideoFolderAbsolutePATH + separator + "Video.mp4";
File NewVideoFile = new File(VideoPath);
recorder.setOutputFile(NewVideoFile.getAbsolutePath());
recorder.setVideoFrameRate(camcorderProfile.videoFrameRate);
try {
recorder.prepare();
}
catch (IllegalStateException e) {
Log.e("MyTag", "IllegalStateException : " + Log.getStackTraceString(e)); }
catch (IOException e) {
Log.e("MyTag", "IOException : " + Log.getStackTraceString(e)); }
recorder.start();
}
........
........
现在我正在使用适用于Android 5.0的新存储访问框架选择一个文件夹:
public void FolderSelection_Lollipop() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
startActivityForResult(intent, PICK_FOLDER_CODE_Lollipop);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if(requestCode == PICK_FOLDER_CODE_Lollipop) {
if(resultCode == RESULT_OK) {
// Get Uri from Storage Access Framework.
Uri Uri_Lollipop = resultData.getData();
VideoFolderAbsolutePATH = Uri_Lollipop.getPath();
//also tried:
VideoFolderAbsolutePATH = Uri_Lollipop.toString();
// Persist access permissions.
this.getContentResolver().takePersistableUriPermission(Uri_Lollipop,
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
}
}
Recorder_Prepare()方法没有用,因为它在Android 5.0上给我IllegalStateException
标签:android,android-sdcard,android-mediarecorder,android-external-storage 来源: https://codeday.me/bug/20190702/1354066.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。