问题标签 [android-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.

0 投票
4 回答
5959 浏览

android - How to get an Android Camera2 with 1:1 ratio like Instagram?

My question is very simple:

How to get an Android android.hardware.Camera2 with 1:1 ratio and without deformation like Instagram?

I tested with the GoogeSamples project android-Camera2Basic. But when I change the preview with a ratio of 1:1 image is deformed. Does anyone have an idea on this?

enter image description here

0 投票
1 回答
5690 浏览

android - Camera2 ImageReader 冻结重复的捕获请求

我正在尝试使用 camera2 API 从相机捕获图像数据。我主要使用来自 android Capture2RAW 示例的代码。在完全停止之前,只有少数图像通过(即调用 onImageAvailable)。我尝试使用不同尺寸的 RAW_SENSOR 和 JPEG 格式进行捕捉,但结果相同。我究竟做错了什么?

0 投票
1 回答
3492 浏览

android - Android Camera2 触控对焦实现 - 取消新触控

我在使用 Camera2 API 实现触摸对焦时遇到问题。这是我的代码:

我看到的问题是,当在短时间内多次调用上述代码(即用户在设置焦点之前太快地触摸屏幕)时,某些设备上的闪光灯会出现奇怪的行为。例如,在 S5 上,看起来所有的请求都在排队,如果用户触摸了很多次,它们会一个一个地执行一段时间。在我的 Nexus 5 上,闪光灯不会在请求之间闪烁,而是会一直亮着,直到最后一个请求完成执行。

我所追求的是真正取消飞行中的请求,就像他们在谷歌相机中所做的那样。如果您使用 Google 相机在闪光灯开启的情况下尝试相同的操作,他们会在注册新触摸时立即取消请求。

我已经尝试mCaptureSession.abortCaptures();在上述方法之前添加,但它的工作方式不同,并且也开始丢帧。mCaptureSession.stopRepeating();根本没有任何区别。

0 投票
4 回答
31920 浏览

android - Android 使用 Camera2 以编程方式打开/关闭相机闪光灯

我正在制作一个用作手电筒的简单应用程序。我需要能够使用 Camera2 API 从应用程序中的按钮打开和关闭闪光灯,因为旧相机 API 出现错误。我想使用“手电筒”手电筒,无需打开相机即可打开闪光灯。我知道这是可能的,因为很多手机在快速设置菜单中都有闪光灯开/关,但我找不到任何关于如何做到这一点的代码或教程。

代码:

我在装有 Android 6.0.1 的 Nexus 6P 上运行。

编辑:我需要使用 Camera2 API。我还没有找到一个很好的教程,得到答案后,我会在这里创建一个 Q/A 格式的教程。

0 投票
0 回答
959 浏览

android - ImageReader 格式在某些设备中被覆盖

我有一个ImageReader用于获取预览帧的数据(字节数组)。它配置了推荐的图像格式,YUV_420_888如下所示:

当我设置的监听mPreviewImageReader.setOnImageAvailableListener();器被调用时,我检索一个图像:

在某些手机中,我在日志中看到以下带有ImageReader_JNI标签的打印输出:

ImageReader_imageSetup:覆盖缓冲区格式 YUV_420_888 到 32315659。

我搜索了一下,似乎格式被覆盖为YV12. 我尝试查看 ImageReader 的 c++ 代码并发现发生这种情况的位置:

所以看起来缓冲区的格式是YV12我设置ImageReader的格式。YUV_420_888

这给我带来了关于这种情况的 2 个问题,这些问题与我所拥有的 2 个选项相对应(据我所知):

  1. 为什么缓冲区的格式YV12,它在哪里设置,我可以改变它吗?
  2. 我可以添加YV12支持 - 但我需要知道发生了这种覆盖。但是当我打电话时image.getFormat()收到 35 这意味着YUV_420_888。有没有办法知道是否发生了这种覆盖?

欢迎任何其他想法。

0 投票
1 回答
149 浏览

android-camera - Android 应用中的相机

我正在创建一个应用程序,该应用程序需要使用相机从 API 15 执行到 API 23,因此在 API 21 中不推荐使用相机类,并且 android.hardware.camera2 无法在较低版本上实现,因此实现相机的最佳方法应该是什么API 21。

0 投票
1 回答
1240 浏览

android - Android Camera2 放弃自动对焦锁定

我正在使用 6.0.1 在 Nexus 5 上测试我的 Camera2 实现。该问题似乎与切换闪光灯模式有关。出乎意料的是,更换闪光灯和拍照会导致 AF 未锁定,并且日志中会出现以下内容:

如果我在不切换闪光灯模式的情况下继续拍照,它可以正常工作(即使闪光灯始终打开)。仅当我切换闪光模式时才会发生这种情况,并且哪种模式处于活动状态似乎并不重要(因此从 FLASH ON 到 FLASH AUTO 或从 FLASH AUTO 到 FLASH OFF 都可能导致此错误)。

这是我更改闪光灯模式的代码:

非常感谢任何帮助。

0 投票
1 回答
982 浏览

android - 使用叠加层保存的相机中的 Android 图像

我已经尝试了几种不同的方法来让它工作,但已经停止了。我正在从相机中获取照片并使用叠加层保存它。

为了组合图像,我已经研究出如何使用两个位图和一个画布来做到这一点,如下所示:

问题是我正在使用camera2,它返回一个图像。我还没有找到将图像转换为位图的方法。我尝试保存图像,然后使用 BitmapFactory 重新加载它,但经常以 OutOfMemory 异常告终。

有没有人有办法解决这个问题?

更新

我在另一个答案中偶然发现了这个问题,但我遇到了一个Buffer not large enough for pixels例外,即使我指定了一个比应有的缓冲区大 8 倍的缓冲区。

0 投票
1 回答
627 浏览

android - Android CamcorderProfile 和 Camera2

在尝试使用 Camera2 API 确定设备支持的视频大小时,是否可以使用CamcorderProfile.hasProfile,还是StreamConfigurationMap.getOutputSizes(MediaRecorder.class)唯一的方法?

我有一种CamcorderProfile不支持的感觉,因为它需要一个int相机ID,而Camera2使用Strings作为ID,但我认为询问没有坏处。

0 投票
2 回答
1412 浏览

android - Nexus 5X 使用 MediaRecorder 和 camera2 录制倒置的视频

我正面临通过新的 camera2 api 录制视频的问题。我正在使用来自 https://github.com/googlesamples/android-Camera2Video的项目, 该项目演示了使用新的 camera2 api 进行视频录制。录制效果很好,但录制的 mp4 视频的旋转因设备不同而不同。

Nexus 9 结果视频很好,但 Nexus 5X 不行。

我听说 Nexus 5X 的摄像头倒置了。在这种情况下,我会设置 MediaRecorder 标志以正确记录,但是......

我的问题是,如何以编程方式识别设备是否有倒置的相机?

谢谢你的帮助!