如何使用setCamera(MediaRecorder)? [英] How to use setCamera (MediaRecorder)?

查看:453
本文介绍了如何使用setCamera(MediaRecorder)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

According to Android SDK MediaRecorder.setCamera can be used to recycle the existing camera instance for video capture and preview without resetting the preview. I was not able to find any sample, and all my attempts were futile: I either get the wrong state exception, or MediaRecorder.prepare fails.

  • 有人知道这种方法是否完全可用吗?
  • 那我怎么用呢?
  • 网络上有任何样本吗?

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

推荐答案

我遇到了同样的问题,并发现它是如何工作的.有些事情必须正确完成.首先,您应该从 android文档.

I ran into the same problem and found out how it can work. Some things have to be done correctly. First you should check the state chart from the android document.

命令的工作顺序如下.

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"

可以在此处找到完整的示例.

这篇关于如何使用setCamera(MediaRecorder)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆