【发布时间】:2020-05-30 18:48:46
【问题描述】:
我正在尝试使用MediaRecorder 在 Android Studio 的 Piano 应用程序中录制音频。在搜索有关如何将文件保存为 getExternalPublicDirectory 的答案后,我已弃用 context.getExternalFilesDir(null).getAbsolutePath(); 。现在,当我运行应用程序并点击录制按钮时,我在mediaRecorder.prepare(); 行中收到此错误java.io.FileNotFoundException: open failed: EISDIR (Is a directory) .. 请帮助!
private void startRecording() throws IOException {
try {
String path = context.getExternalFilesDir(null).getAbsolutePath();
audioFile = new File(path);
} catch (Exception e) {
Log.e("Error Tag", "external storage access error " + e.getMessage());
return;
}
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile(audioFile.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
【问题讨论】: