当前位置: 代码迷 >> Android >> 尝试写的录音demo在.stop()的时候抛出错误
  详细解决方案

尝试写的录音demo在.stop()的时候抛出错误

热度:249   发布时间:2016-05-01 12:04:54.0
尝试写的录音demo在.stop()的时候抛出异常
//这是我写的录音机的 开始方法,没出现问题
public void start(View v) {
try {
myFile = new File(Environment.getExternalStorageDirectory()
.getCanonicalFile() + "/录音.amr");
} catch (IOException e) {
// TODO Auto-generated catch block

e.printStackTrace();
}
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(myFile.getAbsolutePath());
try {
recorder.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
recorder.start();
}
//下面是end()方法。 手机上显示 是nullpointExceputation .但是我没看出来什么问题,然后对mediarecorder的使用完全是按照开发文档上的实例
public void end(View v) {
if(myFile.exists()){
recorder.stop();//!!!!这里出现问题!!!!
recorder.release();
recorder = null;
}}
手机 android 录音机 入门 求教

------解决方案--------------------
android使用audioRecord和audioTrack实现语音录音播放与即时播放
不错的例子!
------解决方案--------------------
看你用的好像不是同一个recorder对象吧
------解决方案--------------------
MediaRecorder recorder = new MediaRecorder();是在start()里定义的end里当然报空指针,又不是成员变量
  相关解决方案