问题标签 [camera2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 将 YUV_420_888 转换为字节数组
我正在测试新的 Camera2 API,并且能够以YUV_420_888
格式捕获相机预览。接下来我需要做的是将此数据提供给接受byte[]
参数的图像处理库。
我找到了转换YUV_420_888
为 RGB等的示例,但我仍然需要将生成的 Bitmap 转换为byte[]
through ByteArrayOutputStream
,经过试验,这极大地减慢了应用程序的速度。
我的问题是,我如何有效地转换YUV_420_888
为byte[]
?
android - Android Camera2 API 切换后置 - 前置摄像头
我正在使用新的 camera2 API 创建自定义相机捕捉视频。
我的代码受到 Google此处提供的代码的强烈启发。我的相机预览有一个按钮,可以从后置摄像头切换到前置摄像头,然后从前置摄像头切换到后置摄像头。默认情况下,使用后置摄像头启动“相机预览”活动。
出于某种原因,当我第一次单击“切换/交换摄像头”按钮时,它应该会带到前置摄像头,但是每次我再次单击时,切换/交换不再起作用:预览(在前置摄像头上)会稍微变淡,就像发生了什么事情一样,但它仍保留在当前选定的(前置)摄像头上。
这是我的代码:
在一个RecordVideoFragment
,在onViewCreated
:
这是switchCameras()
功能:
如果您对正在发生的事情有任何想法,那将拯救我。这几天我一直在窃听。非常感谢
android - 为 ImageReaders 表面设置快门速度失败(android camera2 api)
我在我的 android 应用程序中使用 camera2 api 并想手动控制快门速度。这就是我设置快门速度的方式:
这就是我创建 CaptureRequestBuilder 的方式:
问题是当我设置快门速度时,它只设置 1 秒或 1 帧然后重置。但是当我不将 ImageReaders 表面添加到 CaptureRequestBuilder 目标输出时,它可能仅适用于 TexturePreview 表面。所以我认为问题出在 ImageReader 中。
有人知道这个问题的解决方案吗?
PS 其他设置(如 ISO 和曝光补偿)适用于两个表面。
android - 使用 Android camera2 获取全屏预览
我正在使用新的 camera2 API 构建自定义相机。我的代码基于谷歌在此处提供的代码示例。
我找不到全屏获取相机预览的方法。在代码示例中,他们使用比率优化来适应所有屏幕,但它只占用屏幕高度的 3/4 左右。
这是我的代码AutoFitTextureView
:
}
非常感谢您的帮助。
android - 带有较旧 API 的 Android CameraAccessException 生成 lint 错误
我正在尝试创建一个同时支持 Camera 和 Camera2 的 Android 应用程序,我已经通过使用 if 语句检查 API 级别的适当代码部分来做到这一点。但是,我在处理 CameraAccessException 时遇到了麻烦,因为我遇到了一个 lint 错误,但我不确定如何摆脱它。如果我用检查 API 级别的 if 语句包围 try/catch,则 lint 错误不会消失。有没有其他方法可以消除 lint 错误?我宁愿不压制检查。这是我正在谈论的一个例子:
该段代码中的两个 catch 语句都生成 lint 错误“类需要 API 级别 21”。
android - Camera2 输出表面因 Android 5.0 上的 RenderScript 分配而失败
我在某些 Android 5.0 设备上使用 Android 的 Camera2 API 使用 RenderScript 分配作为预览输出表面时遇到问题,我正在努力找出原因。
我创建输入分配如下:
然后将此分配用作请求构建器和捕获会话的预览表面:
但是,每当我尝试在会话中进行捕获时,例如以下内容onConfigured
:
它会引发 IllegalArgumentException 和错误日志,如下所示:
这个完全相同的代码在我测试过的 6.0 设备上没有问题,如果我将预览表面更改为 ImageReader,5.0 设备也可以工作。
android - Android Camera2 ImageReader 图像格式 YUV
我有一个可以进行运动检测和视频录制的 Android 应用程序。它同时支持 Camera 和 Camera2 API,以提供向后兼容性。我正在使用带有 Camera2 API 的 ImageReader 来进行运动检测。我目前正在请求 JPEG 格式的图像,这非常慢。我知道请求 YUV 图像会更快,但是 YUV 格式是否会因使用的设备而异?我只是想在我放弃优化之前检查一下。
android - 在 ImageSaver 中传递给 DngSaver 的 CaptureResult 为空 camera2 api
在我使用 camera2api 构建相机应用程序的过程中,我在尝试保存原始图像时遇到了一个小问题。
我将捕获结果分配给以下代码中的成员。
当我在这个位置调试它时,成员被分配而不是 null。DngCreator
但是,当它在类中引发空错误时ImageSaver
。
我的听众:
我的图像保护程序类:
现在,当我尝试初始化 DngCreator 并且堆栈跟踪如下时,它给了我一个错误。
FATAL EXCEPTION: Camera2 Background Thread
Process: com.something.something, PID: 5162
java.lang.IllegalArgumentException: Null argument to DngCreator constructor
at android.hardware.camera2.DngCreator.<init>(DngCreator.java:89)
at com.something.something.ControlCameraActivity$ImageSaver.run(ControlCameraActivity.java:328)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
有人可以帮我解决这个问题吗?如果您需要我提供更多信息,请立即告诉我。谢谢