如何在 MediaRecorder 中添加焦点功能?

Posted

技术标签:

【中文标题】如何在 MediaRecorder 中添加焦点功能?【英文标题】:How to add focus function in MediaRecorder? 【发布时间】:2013-04-30 18:59:45 【问题描述】:

设备:HTC 安卓:2.3.5

我正在使用MediaRecorder 编写一个录像机应用程序。 它可以工作,但没有焦点功能。

我可以在相机预览阶段添加对焦功能。 但是一旦我点击按钮开始MediaRecorder,焦点就会丢失。

我在网上搜索,没有找到答案。

[更新 1:更多细节]

我使用了setFocusMode(Parameters.FOCUS_MODE_AUTO);setFocusMode(Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)。 但是我调查了HTC设备(2.3.5 sdk版本),它没有FOCUS_MODE_CONTINUOUS_VIDEO的选项。

其实HTC设备(2.3.5 sdk版)自带的视频录制在预览阶段有对焦功能,如果我不改变焦距,在视频录制时保持焦距。如果我改变焦距,录制的视频就会失焦。

但是对于MediaRecorder,当我在预览阶段获得良好的焦点时,一旦启动MediaRecorder,它将失去焦点。

【问题讨论】:

你指定参数了吗.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);打开您的相机设备后,parameters = camera.getParameters(); ? 谢谢。我已经设置好了(实际上sdk 2.3.5版本不支持该选项)。请参阅我的原始帖子中的 [更新 1:详细信息]。 【参考方案1】:

我在使用 MediaRecorder 时遇到了类似的问题(特别是在 3.0 之前的 android 版本上)。以下设置参数器的代码明确解决了我的问题:

Camera.Parameters parameters = mCamera.getParameters();

parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);

parameters.set("cam_mode", 1 ); //not sure why this arcane setting is required. found this in another post on Stackoverlflow 

mCamera.setParameters(parameters);  


mCamera.stopPreview();  // call this if you had started preview before or else recording wont work on Android versions <= 2.3

mediarecorder.setCamera(mCamera); 

您还提到您发现 HTC 设备存在问题。因此,在非 HTC 设备上尝试上述代码也是明智之举。我在很多其他地方都遇到了一些非常奇怪的 HTC 设备问题。

【讨论】:

以上是关于如何在 MediaRecorder 中添加焦点功能?的主要内容,如果未能解决你的问题,请参考以下文章

用MediaRecorder实现简单的录像功能

Android 中使用MediaRecorder实现视频录制功能

MediaRecorder实现微信QQ人人易信等语音录制功能工具:MediaUtilAPI

Android多媒体功能开发(13)——使用MediaRecorder类录制视频

输入在vue中失去焦点时如何执行功能

MediaRecorder - 如何在录制时播放视频块/块?