Android MediaRecorder会导致强制停止错误
可能重复:
MediaRecorder:setCamera() - 错误相机不是aviv
我制作的应用程序允许用户录制音频并将其保存在SD卡中的某个位置。 我正在使用MediaRecorder来录制音频。
我正在重新使用androiddevblog网站上的一些代码,因为它是由另一位用户在stackoverflow上推荐的,以检查这些教程。
我的问题是每当我点击按钮记录音频时,我收到一个错误,说“你的应用程序已被迫停止”。 我已经发布了下面的录制功能的代码。
编辑:我解决了我原来的问题。 现在,当我将recorder.stop()添加到我的代码中时,我得到了一个illegalStateException。 我也更新了下面的代码(唯一的变化是在startRecorder方法中)。 有任何想法吗 ?
我知道没有什么会根据我的代码进行记录。 我想首先确保文件被创建并保存。
public class MyRecorderActivity extends Activity{
private Button audio;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.questionandanswer);
....
....
audio = (Button) findViewById(R.id.audio_recordactivity);
audio.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
startRecording();
}
});
}
private String getFilename(){
String filepath = Environment.getExternalStorageDirectory().getPath();
File file = new File(filepath,AUDIO_RECORDER_FOLDER);
if(!file.exists()){
file.mkdirs();
}
return (file.getAbsolutePath() + "/");
}
private void startRecording(){
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(getFilename());
try {
recorder.prepare();
recorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
recorder.stop();
recorder.reset();
recorder.release();
}
}
我解决了我的问题。 我忘了添加权限!
链接地址: http://www.djcxy.com/p/5259.html