Android视频预览和视频录制

时间:2013-03-05 10:11:39

标签: android video preview recording

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

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

我的Recorder对象初始化如下:

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();

我在前30秒使用了倒数计时器,并且在onfinsh实现时我正在调用mrec.start()来启动实际录制,直到我没有得到相机预览。此外,在启动录像机之前还需要一到两秒的延迟。

1 个答案:

答案 0 :(得分:1)

这两行:

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

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

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