【问题标题】:Android Video Preview and Video RecordingAndroid 视频预览和视频录制
【发布时间】:2013-03-05 10:11:38
【问题描述】:

大家好,我需要录制一段特定持续时间的视频,这可以正常工作。但我需要在开始实际视频录制之前添加 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() 来开始实际录制,直到我无法获得相机预览。在启动记录器之前也需要大约一到两秒的延迟。

【问题讨论】:

    标签: android video preview recording


    【解决方案1】:

    这两行:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-27
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多