【发布时间】:2014-04-24 17:25:57
【问题描述】:
在使用MediaRecorder 录制之前解锁Camera 有什么问题? docs 说:
使用 Android 框架进行视频捕获需要仔细管理 Camera 对象并与 MediaRecorder 类协调。使用 Camera 录制视频时,除了 Camera.open() 和 Camera.release() 调用之外,您还必须管理 Camera.lock() 和 Camera.unlock() 调用以允许 MediaRecorder 访问摄像机硬件。
注意:从 Android 4.0(API 级别 14)开始,Camera.lock() 和 Camera.unlock() 调用会自动为您管理。
但是,无论我在什么设备上进行测试,如果我在MediaRecorder.start 之前没有调用Camera.unlock,我就会得到一个异常(start failed)。
是文档在撒谎,还是我做错了什么?
我的流程是打开相机(使用Camera.open(int)),设置录制提示为true,设置预览FPS和大小,以及显示方向。然后我创建MediaRecorder并设置音视频源、输出格式、帧率、大小、视频比特率、音视频编码器、方向提示、输出文件,然后我调用@ 987654329@.
如果一切顺利完成,当用户单击“记录”按钮时,我调用MediaRecorder.start() 并引发异常。如果我改为调用:
Camera.unlock();
MediaRecorder.start();
也不例外。
【问题讨论】:
标签: android android-camera android-mediarecorder