Android MediaRecorder解锁API14 +

时间:2014-04-24 17:25:57

标签: android android-camera android-mediarecorder

使用Camera录制前解锁MediaRecorder的协议是什么? docs说:

  

使用Android框架进行视频捕获需要仔细管理Camera对象并与MediaRecorder类协调。使用Camera录制视频时,除了Camera.open()和Camera.release()调用之外,您还必须管理Camera.lock()和Camera.unlock()调用以允许MediaRecorder访问摄像头硬件。

     

注意:从Android 4.0(API级别14)开始,将自动为您管理Camera.lock()和Camera.unlock()调用。

但是,无论我测试什么设备,如果我在Camera.unlock之前没有打电话给MediaRecorder.start,我会收到例外(start failed)

文档是在撒谎,还是我做错了什么?

我的流程是打开相机(使用Camera.open(int)),将录制提示设置为true,设置预览FPS和大小,以及显示方向。然后我创建MediaRecorder并设置音频和视频源,输出格式,帧速率,大小,视频比特率,音频和视频编码器,方向提示,输出文件,然后我致电MediaRecorder.prepare

如果所有内容成功完成,则当用户点击"记录"按钮,我调用MediaRecorder.start()并抛出异常。如果我改为致电:

Camera.unlock();
MediaRecorder.start();

没有例外。

1 个答案:

答案 0 :(得分:0)

我对MediaRecorder有足够的经验说这个错误可能发生在大量案件中。 顺便说一下,如果锁定/解锁方法出现问题,那么错误将是

  

解锁失败

在大多数情况下,(启动失败)错误会导致错误的录像机初始化。 写你的init方法请。