关闭

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

标签: android
858人阅读 评论(0) 收藏 举报
分类:

因为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(); }

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2355次
    • 积分:110
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档