Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android视频预览和视频录制_Android_Video_Preview_Recording - Fatal编程技术网

Android视频预览和视频录制

Android视频预览和视频录制,android,video,preview,recording,Android,Video,Preview,Recording,嗨,伙计们,我需要录制一段特定时间的视频,这段视频效果很好。但我需要在开始实际录像之前增加30秒的延迟,但同时我需要显示相机预览。我想知道如何实现它。 摄影机对象初始化的按代码为: mCamera = Camera.open(); surfaceHolder = recorderView.getHolder(); surfaceHolder.addCallback(this); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFE

嗨,伙计们,我需要录制一段特定时间的视频,这段视频效果很好。但我需要在开始实际录像之前增加30秒的延迟,但同时我需要显示相机预览。我想知道如何实现它。 摄影机对象初始化的按代码为:

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();
我在前30秒使用倒计时,在其onfinsh实现中,我调用了
mrec.start()
来开始实际录制,直到我没有得到相机预览。此外,在启动记录器之前,还需要大约一秒或两秒的延迟。

这两行:

mCamera.unlock();
mrec.setCamera(mCamera); 
停止相机预览。您必须将它们(以及之后的所有设置)推迟到30秒之后

我也不喜欢,但这就是它的工作原理。

这两行:

mCamera.unlock();
mrec.setCamera(mCamera); 
停止相机预览。您必须将它们(以及之后的所有设置)推迟到30秒之后

我也不喜欢,但这就是它的工作原理