如何使用setCamera(MediaRecorder)?

Ign*_*kas 7 camera android mediarecorder

根据Android SDK,MediaRecorder.setCamera可用于回收现有的摄像头实例以进行视频捕获和预览,而无需重置预览.我无法找到任何样本,我的所有尝试都是徒劳的:我要么得到错误的状态异常,要么MediaRecorder.prepare失败.

  • 有谁知道这种方法是否可用?
  • 我怎么用呢?
  • 网上有哪些样品?

供参考:http: //developer.android.com/reference/android/media/MediaRecorder.html#setCamera(android.hardware.Camera)

小智 9

我遇到了同样的问题,并发现它是如何工作的.有些事情必须正确完成.首先,你应该检查android文档中的状态图表 .

命令的工作顺序如下.

mCamera = Camera.open();
rec = new MediaRecorder();                               // state "Initial"

mCamera.lock();
mCamera.unlock();

rec.setCamera(mCamera);                                  // state still "Initial"
rec.setVideoSource(MediaRecorder.VideoSource.CAMERA);    // state "Initialized"
rec.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);  // state "DataSourceConfigured"
rec.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

rec.setPreviewDisplay(surfaceHolder.getSurface());

rec.setOutputFile(Environment.getExternalStorageDirectory() + "/test.mp4");

rec.prepare();                                           // state "Prepared"
rec.start();                                             // state "Recording"

// ...

rec.stop();                                              // state "Initial"
Run Code Online (Sandbox Code Playgroud)

完整的例子可以发现在这里.


ala*_*nde 7

Android Camera应用源提供了最佳示例.经过一些调查后,我发现recorder.setCamera(camera)应该在实例化之后立即调用MediaRecorder,或者至少在应用任何设置之前调用它.setVideoSource()在调用之前应用任何设置(等)会setCamera()导致错误.


gam*_*eus -4

我找到了 2 个您可能会觉得有用的链接。Android Camera git repoMediaRecorder 示例