我想使用 Media Recorder 录制音频文件并将其保存到sd card
. 调试器显示该行recorder.start()
引发了IllegalStateException
. 代码取自 android dev 网站,唯一的变化是文件名和路径。
当我在调试菜单中遇到错误时,我看到的View
类是:
找不到来源。源附件不包含文件 View.class 的源。您可以通过单击下面的更改附件源来更改源附件:
canRecord 是一个boolean
最初设置为 true 的集合,它指示在onClick
函数中调用哪个方法。该功能正在运行。
@SuppressLint("SimpleDateFormat")
private void record(){
SimpleDateFormat timeStampFormat = new SimpleDateFormat("MM/dd/yyyy");
String audio_path = Environment.getExternalStorageDirectory() + "/resources/resources/WI1/";
String fileName = username +"-"+ timeStampFormat.format(new Date())+".mp4";
audio_button.setText("Recording");
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setOutputFile(audio_path+fileName);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
try {
recorder.prepare();
} catch (IOException e) {
Toast.makeText(this, "Can't record audio at this time", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
canRecord = false;
recorder.start();
} // record
这是停止录制功能,虽然它从未达到这一点。
private void stopRecording(){
audio_button.setText("Attach Audio");
recorder.stop();
recorder.release();
}
最后,我在清单中添加了以下权限:
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我该如何解决这个问题?谢谢!