Android 媒体录制器上的非法状态异常
我想使用Media Recorder录制音频文件并将其保存到Android 媒体录制器上的非法状态异常,android,illegalstateexception,android-mediarecorder,Android,Illegalstateexception,Android Mediarecorder,我想使用Media Recorder录制音频文件并将其保存到sd卡。调试器显示,recorder.start()行引发了一个IllegalStateException。代码取自android开发人员网站,唯一的更改是文件名和路径 当我到达调试菜单中的错误时,会显示视图类,其中显示: 找不到源。 源附件不包含文件View.class的源。 您可以通过单击下面的“更改附加源”来更改源附件: canRecord是一个boolean函数,最初设置为true,指示在onClick函数中调用哪个方法。这一功
sd卡
。调试器显示,recorder.start()
行引发了一个IllegalStateException
。代码取自android开发人员网站,唯一的更改是文件名和路径
当我到达调试菜单中的错误时,会显示视图
类,其中显示:
找不到源。
源附件不包含文件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" />
我怎样才能解决这个问题?谢谢 您提供给记录器的文件名可能有问题。请尝试以下操作:
String audio_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/resources/resources/WI1/";
String fileName = audiopath+"-"+ timeStampFormat.format(new Date())+".mp4";
可能会有帮助。您提供给记录器的文件名可能有问题。请尝试以下操作:
String audio_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/resources/resources/WI1/";
String fileName = audiopath+"-"+ timeStampFormat.format(new Date())+".mp4";
希望对您有所帮助。我正在使用libgdx(多平台开源游戏引擎)当我尝试使用androids代码而不是libgdx代码进行录制时,我也遇到了类似的问题。结果我需要处理我的libgdx录制器代码,或者干脆将其全部删除。因此,也许你有另一个录制器干扰了某个地方我正在使用libgdx(多平台开源游戏引擎)当我尝试使用androids代码而不是libgdx代码进行录制时,我也遇到了类似的问题。结果我需要处理我的libgdx录制器代码,或者干脆将其全部删除。因此,也许你有另一个录制器在某处干扰