问题标签 [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.
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?
android - Camera2 ImageReader 冻结重复的捕获请求
我正在尝试使用 camera2 API 从相机捕获图像数据。我主要使用来自 android Capture2RAW 示例的代码。在完全停止之前,只有少数图像通过(即调用 onImageAvailable)。我尝试使用不同尺寸的 RAW_SENSOR 和 JPEG 格式进行捕捉,但结果相同。我究竟做错了什么?
android - Android Camera2 触控对焦实现 - 取消新触控
我在使用 Camera2 API 实现触摸对焦时遇到问题。这是我的代码:
我看到的问题是,当在短时间内多次调用上述代码(即用户在设置焦点之前太快地触摸屏幕)时,某些设备上的闪光灯会出现奇怪的行为。例如,在 S5 上,看起来所有的请求都在排队,如果用户触摸了很多次,它们会一个一个地执行一段时间。在我的 Nexus 5 上,闪光灯不会在请求之间闪烁,而是会一直亮着,直到最后一个请求完成执行。
我所追求的是真正取消飞行中的请求,就像他们在谷歌相机中所做的那样。如果您使用 Google 相机在闪光灯开启的情况下尝试相同的操作,他们会在注册新触摸时立即取消请求。
我已经尝试mCaptureSession.abortCaptures();
在上述方法之前添加,但它的工作方式不同,并且也开始丢帧。mCaptureSession.stopRepeating();
根本没有任何区别。
android - Android 使用 Camera2 以编程方式打开/关闭相机闪光灯
我正在制作一个用作手电筒的简单应用程序。我需要能够使用 Camera2 API 从应用程序中的按钮打开和关闭闪光灯,因为旧相机 API 出现错误。我想使用“手电筒”手电筒,无需打开相机即可打开闪光灯。我知道这是可能的,因为很多手机在快速设置菜单中都有闪光灯开/关,但我找不到任何关于如何做到这一点的代码或教程。
代码:
我在装有 Android 6.0.1 的 Nexus 6P 上运行。
编辑:我需要使用 Camera2 API。我还没有找到一个很好的教程,得到答案后,我会在这里创建一个 Q/A 格式的教程。
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 个选项相对应(据我所知):
- 为什么缓冲区的格式
YV12
,它在哪里设置,我可以改变它吗? - 我可以添加
YV12
支持 - 但我需要知道发生了这种覆盖。但是当我打电话时image.getFormat()
收到 35 这意味着YUV_420_888
。有没有办法知道是否发生了这种覆盖?
欢迎任何其他想法。
android-camera - Android 应用中的相机
我正在创建一个应用程序,该应用程序需要使用相机从 API 15 执行到 API 23,因此在 API 21 中不推荐使用相机类,并且 android.hardware.camera2 无法在较低版本上实现,因此实现相机的最佳方法应该是什么API 21。
android - Android Camera2 放弃自动对焦锁定
我正在使用 6.0.1 在 Nexus 5 上测试我的 Camera2 实现。该问题似乎与切换闪光灯模式有关。出乎意料的是,更换闪光灯和拍照会导致 AF 未锁定,并且日志中会出现以下内容:
如果我在不切换闪光灯模式的情况下继续拍照,它可以正常工作(即使闪光灯始终打开)。仅当我切换闪光模式时才会发生这种情况,并且哪种模式处于活动状态似乎并不重要(因此从 FLASH ON 到 FLASH AUTO 或从 FLASH AUTO 到 FLASH OFF 都可能导致此错误)。
这是我更改闪光灯模式的代码:
非常感谢任何帮助。
android - 使用叠加层保存的相机中的 Android 图像
我已经尝试了几种不同的方法来让它工作,但已经停止了。我正在从相机中获取照片并使用叠加层保存它。
为了组合图像,我已经研究出如何使用两个位图和一个画布来做到这一点,如下所示:
问题是我正在使用camera2,它返回一个图像。我还没有找到将图像转换为位图的方法。我尝试保存图像,然后使用 BitmapFactory 重新加载它,但经常以 OutOfMemory 异常告终。
有没有人有办法解决这个问题?
更新
我在另一个答案中偶然发现了这个问题,但我遇到了一个Buffer not large enough for pixels
例外,即使我指定了一个比应有的缓冲区大 8 倍的缓冲区。
android - Android CamcorderProfile 和 Camera2
在尝试使用 Camera2 API 确定设备支持的视频大小时,是否可以使用CamcorderProfile.hasProfile
,还是StreamConfigurationMap.getOutputSizes(MediaRecorder.class)
唯一的方法?
我有一种CamcorderProfile
不支持的感觉,因为它需要一个int
相机ID,而Camera2使用String
s作为ID,但我认为询问没有坏处。
android - Nexus 5X 使用 MediaRecorder 和 camera2 录制倒置的视频
我正面临通过新的 camera2 api 录制视频的问题。我正在使用来自 https://github.com/googlesamples/android-Camera2Video的项目, 该项目演示了使用新的 camera2 api 进行视频录制。录制效果很好,但录制的 mp4 视频的旋转因设备不同而不同。
Nexus 9 结果视频很好,但 Nexus 5X 不行。
我听说 Nexus 5X 的摄像头倒置了。在这种情况下,我会设置 MediaRecorder 标志以正确记录,但是......
我的问题是,如何以编程方式识别设备是否有倒置的相机?
谢谢你的帮助!