android 录音时报 MediaRecorder: setOutputFile called in an invalid state(1)

因为code是完全按照google的Demo写的,觉得比较奇怪。看描述是说setOutputFormat的时候,状态应该错乱了, 最后又看了一下google文档,原因在于google对于设定MediaRecorder是有要求的,写代码的时候应该完全按照人 家要求的设定顺序来写,具体如下: mCamera.unlock();     mProfile = CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH);         //1st. Initial state     mMediaRecorder = new MediaRecorder();     mMediaRecorder.setCamera(mCamera);         //2st. Initialized state     mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);     mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);         //3st. config         mMediaRecorder.setOutputFormat(mProfile.fileFormat);         mMediaRecorder.setAudioEncoder(mProfile.audioCodec);         mMediaRecorder.setVideoEncoder(mProfile.videoCodec);         mMediaRecorder.setOutputFile("/sdcard/FBVideo.3gp");         mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight);         mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate);         mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate);         mMediaRecorder.setAudioEncodingBitRate(mProfile.audioBitRate);         mMediaRecorder.setAudioChannels(mProfile.audioChannels);         mMediaRecorder.setAudioSamplingRate(mProfile.audioSampleRate);     mMediaRecorder.setPreviewDisplay(mHolder.getSurface());         try { mMediaRecorder.prepare(); mMediaRecorder.start(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值