【问题标题】:Android MediaRecorder Unlock API14+Android MediaRecorder 解锁 API14+
【发布时间】: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


    【解决方案1】:

    我对 MediaRecorder 有足够的经验,可以说在大量情况下都会发生此错误。 顺便说一句,如果锁定/解锁方法出现问题,错误将是

    解锁失败

    在大多数情况下(启动失败)错误是由错误的记录器初始化引起的。 请写下你的初始化方法。

    【讨论】:

    • 我不想写出整个init方法。但是,问题是当unlock 不存在时,它会引发异常。当它在那里时(并且没有其他任何改变)它可以工作。
    • Mb 这很愚蠢,但是您的应用程序中的任何其他进程都使用了相机?这是有道理的:你解锁相机然后它就免费了 - 你的录音机可以使用))
    • 应该没有其他东西在使用相机,但我会检查一下。
    • 使用相机的应用中没有其他内容。
    猜你喜欢
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-30
    相关资源
    最近更新 更多