2013-03-05 171 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