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();
}
}
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!