java - 如何使用camera2修改帧率?

标签 java android android-camera android-camera2

我正在尝试修改帧速率(降低它)以便我们可以对其进行实时操作。但不能改变帧率。

可能的解决方案包括:

  • 更改CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES

  • 延迟setRepeatingRequest

我们需要降低传递给 Surfaceholder 的生成帧速率,以便可以进一步应用于其中的操作。

最佳答案

正如评论中所建议的,我设法找到了解决方案并回答了我自己的问题,关于我是如何解决这个问题的。

我们首先创建一个mPreviewRequestBuilder对象,并用它来修改帧率。

private CaptureRequest.Builder mPreviewRequestBuilder;
// We set up a CaptureRequest.Builder with the output Surface.
mPreviewRequestBuilder
                = mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_PREVIEW);
mPreviewRequestBuilder.addTarget(surface);        

我们可以通过创建一个 Range 的数组来改变这一点。并如下所述手动设置。

Range<Integer>[] fps = new Range[size];

将自定义值添加到 Range 类。

fps[0] = Range.create(2,5);

一旦我们成功地创建了一个范围数组,我们就可以按如下所述设置相机设置:

mPreviewRequestBuilder.set(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE,fps[0]);
mPreviewRequest = mPreviewRequestBuilder.build();

关于java - 如何使用camera2修改帧率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53957348/

相关文章:

java - 如何在 android 中找到内部(默认手机存储)和外部存储(可移动 sd 卡)?

android - 在后台捕获相机帧 (Android)

java - NetBeans 向右移动选项卡导航

java - 当我单击 RecyclerView 项目时, fragment 加载数据错误的数据

java - 使用来自 Eclipse 的参数调用 Java 主方法

Android Camera - 录制视频时预览放大

android - 使用 Android 相机进行颜色检测

java - 序列化OrientDB RecordID时无限递归

java - Java ArrayList<String> 的紧凑替代品