求大神 MediaRecorder的问题 求大神啊

baidu_26974557 2016-09-26 09:50:06
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.startBtn:
if (!isRecord) {
if (mediaRecorder == null) {
mediaRecorder = new MediaRecorder();
}
if (camera == null) {
camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);
camera.unlock();
}
mediaRecorder.setCamera(camera);
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

CamcorderProfile camcorderProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);
mediaRecorder.setVideoSize(480, 320);
mediaRecorder.setVideoFrameRate(camcorderProfile.videoFrameRate);//设置要捕获的视频帧速率
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());

String path = getSDPath();
if (path != null) {
File dir = new File(path + "/recordtest");
if (!dir.exists()) { //返回一个布尔值,指示是否可以在下面的文件系统中找到这个文件。
dir.mkdir();
}
path = dir + "/" + getDate() + ".mp4";
mediaRecorder.setOutputFile(path);
try {
mediaRecorder.prepare();//准备录音机开始捕获和编码数据。
} catch (IOException e) {
e.printStackTrace();
}
}

mediaRecorder.start();
isRecord = true;
startCameraBtn.setText("stop");
} else {
mediaRecorder.stop();
mediaRecorder.reset();
startCameraBtn.setText("start");
isRecord = false;
}
break;
}
};



求大神 第一次点击start按钮能正常start,然后再点击stop按钮(和start按钮同一个)能够正常stop,但是第二次点击start就会报如上的错(错误行已用红色),求大神啊
...全文
180 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Arnold9009 2016-09-26
  • 打赏
  • 举报
回复
是不是stop的时候没处理camera
baidu_26974557 2016-09-26
  • 打赏
  • 举报
回复
有木有大神指点一下

80,360

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧