2013-03-05 212 views
1

嗨,大家好我需要录制一段视频才能正常工作。但我需要在开始实际视频录制之前添加30秒的延迟时间,但意味着需要显示相机预览。我想知道如何实现它。 通过代码相机对象初始化是:Android视频预览和视频录制

mCamera = Camera.open(); 
surfaceHolder = recorderView.getHolder(); 
surfaceHolder.addCallback(this); 
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

和我的记录对象的初始化是如下:

File file = new File(path, filename); 
mrec = new MediaRecorder(); 
mCamera.lock(); 
mCamera.unlock(); 
mrec.setCamera(mCamera); 
mrec.setVideoSource(MediaRecorder.VideoSource.CAMERA); 
mrec.setAudioSource(MediaRecorder.AudioSource.MIC); 
mrec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
mrec.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP); 
mrec.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
mrec.setVideoSize(320, 240); 
mrec.setPreviewDisplay(surfaceHolder.getSurface()); 
mrec.setOutputFile(path + filename); 
mrec.prepare(); 

我使用的是countdowntimer前30秒,并在其onfinsh实现我打电话打开一个mrec.start()开始实际录制,直到我没有得到相机预览。在启动录像机之前,还需要大约一到两秒的延迟时间。

回答

1

这两条线:

mCamera.unlock(); 
mrec.setCamera(mCamera); 

停止相机预览。您必须推迟它们(以及之后的所有设置),直到30秒过去。

我不喜欢它,但它是如何工作的。

+0

谢谢,它工作正常。 :-) – Dinash 2013-03-07 09:10:51