java中初始化MediaRecorder的实现方法
java中初始化MediaRecorder
实现代码:
privatebooleaninitializeVideo(){ Log.v(TAG,"initializeVideo"); if(mSurfaceHolder==null){ Log.v(TAG,"SurfaceHolderisnull"); returnfalse; } mMediaRecorderRecording=true; if(mMediaRecorder==null) mMediaRecorder=newMediaRecorder(); else mMediaRecorder.reset(); if(mCamera!=null){ if(Integer.parseInt(Build.VERSION.SDK)>=8) VideoCameraNew2.reconnect(mCamera); mCamera.release(); mCamera=null; } if(useFront&&Integer.parseInt(Build.VERSION.SDK)>=5){ if(isAvailableSprintFFC) { try { Methodmethod=Class.forName("android.hardware.HtcFrontFacingCamera").getDeclaredMethod("getCamera",null); mCamera=(Camera)method.invoke(null,null); } catch(Exceptionex) { Log.d(TAG,ex.toString()); } }else{ mCamera=Camera.open(); Camera.Parametersparameters=mCamera.getParameters(); parameters.set("camera-id",2); mCamera.setParameters(parameters); } VideoCameraNew.unlock(mCamera); mMediaRecorder.setCamera(mCamera); mVideoPreview.setOnClickListener(this); } mVideoPreview.setOnLongClickListener(this); mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mMediaRecorder.setOutputFile(sender.getFileDescriptor()); mMediaRecorder.setVideoFrameRate(20); if(videoQualityHigh){ mMediaRecorder.setVideoSize(352,288); }else{ mMediaRecorder.setVideoSize(176,144); } mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface()); try{ mMediaRecorder.prepare(); mMediaRecorder.setOnErrorListener(this); mMediaRecorder.start(); }catch(IOExceptionexception){ releaseMediaRecorder(); finish(); returnfalse; } returntrue; }
privatebooleaninitializeVideo(){ Log.v(TAG,"initializeVideo"); if(mSurfaceHolder==null){ Log.v(TAG,"SurfaceHolderisnull"); returnfalse; } mMediaRecorderRecording=true; if(mMediaRecorder==null) mMediaRecorder=newMediaRecorder(); else mMediaRecorder.reset(); if(mCamera!=null){ if(Integer.parseInt(Build.VERSION.SDK)>=8) VideoCameraNew2.reconnect(mCamera); mCamera.release(); mCamera=null; } if(useFront&&Integer.parseInt(Build.VERSION.SDK)>=5){ if(isAvailableSprintFFC) { try { Methodmethod=Class.forName("android.hardware.HtcFrontFacingCamera").getDeclaredMethod("getCamera",null); mCamera=(Camera)method.invoke(null,null); } catch(Exceptionex) { Log.d(TAG,ex.toString()); } }else{ mCamera=Camera.open(); Camera.Parametersparameters=mCamera.getParameters(); parameters.set("camera-id",2); mCamera.setParameters(parameters); } VideoCameraNew.unlock(mCamera); mMediaRecorder.setCamera(mCamera); mVideoPreview.setOnClickListener(this); } mVideoPreview.setOnLongClickListener(this); mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); mMediaRecorder.setOutputFile(sender.getFileDescriptor()); mMediaRecorder.setVideoFrameRate(20); if(videoQualityHigh){ mMediaRecorder.setVideoSize(352,288); }else{ mMediaRecorder.setVideoSize(176,144); } mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface()); try{ mMediaRecorder.prepare(); mMediaRecorder.setOnErrorListener(this); mMediaRecorder.start(); }catch(IOExceptionexception){ releaseMediaRecorder(); finish(); returnfalse; } returntrue; }
privatevoidreleaseMediaRecorder(){ Log.v(TAG,"Releasingmediarecorder."); if(mMediaRecorder!=null){ mMediaRecorder.reset(); if(mCamera!=null){ if(Integer.parseInt(Build.VERSION.SDK)>=8) VideoCameraNew2.reconnect(mCamera); mCamera.release(); mCamera=null; } mMediaRecorder.release(); mMediaRecorder=null; } } publicvoidonError(MediaRecordermr,intwhat,intextra){ if(what==MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN){ finish(); } }
privatevoidreleaseMediaRecorder(){ Log.v(TAG,"Releasingmediarecorder."); if(mMediaRecorder!=null){ mMediaRecorder.reset(); if(mCamera!=null){ if(Integer.parseInt(Build.VERSION.SDK)>=8) VideoCameraNew2.reconnect(mCamera); mCamera.release(); mCamera=null; } mMediaRecorder.release(); mMediaRecorder=null; } } publicvoidonError(MediaRecordermr,intwhat,intextra){ if(what==MediaRecorder.MEDIA_RECORDER_ERROR_UNKNOWN){ finish(); } }
privatevoidstopVideoRecording(){ Log.v(TAG,"stopVideoRecording"); if(mMediaRecorderRecording||mMediaRecorder!=null){ Receiver.listener_video=null; t.interrupt(); RtpStreamSender.delay=0; if(mMediaRecorderRecording&&mMediaRecorder!=null){ try{ mMediaRecorder.setOnErrorListener(null); mMediaRecorder.setOnInfoListener(null); mMediaRecorder.stop(); }catch(RuntimeExceptione){ Log.e(TAG,"stopfail:"+e.getMessage()); } mMediaRecorderRecording=false; } releaseMediaRecorder(); } }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!