问题标签 [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 投票
1 回答
1445 浏览

android - 在 Camera2 上的捕获会话期间启用预览

我正在构建一个基于 Camera2 的相机应用程序,但我保存的图片与我在表面视图中看到的最新图片不匹配。预览会话似乎有效,但是当我要求捕获时,新请求会停止预览并捕获图像。表面视图冻结在最新图片上,并且在我按下快门按钮(预览运行和请求捕获)与捕获请求的 onCaptureCompleted 之间产生了间隙。

这是预览会话

mCaptureCallback 定义如下:

私人CameraCaptureSession.CaptureCallback mCaptureCallback =新CameraCaptureSession.CaptureCallback(){

发生的事情是我重复预览并且它有效。该过程仅用于保持其运行,并且在将 mState 设置为 CAPTURE 之前什么都没有发生。

当我们点击快门按钮时,它被设置为捕捉。当我单击按钮时,我调用:

然后我调用 CapturePicture,因为 mState 在 Capture 中,如 mCaptureCallback 中所定义

定义了 takePicutreNow

这个过程是有效的,但我在印刷机和图像保存之间有一个滞后,如果我快速移动,我在预览屏幕上看到的最新图片与保存的图片不完全相同。

似乎捕获不更新表面,表面仅在我们处于预览时显示

知道我保存了什么吗?谢谢

0 投票
1 回答
3492 浏览

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

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

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

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

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

0 投票
1 回答
1240 浏览

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

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

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

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

非常感谢任何帮助。

0 投票
1 回答
683 浏览

android - Android Camera2 API MediaRecoder 如何捕获图像(不是流也不是文件)

我正在尝试为 android 6.0 平台开发行车记录仪应用程序。这个应用程序可以记录从相机捕获的视频并保存为 mp4 文件。在保存过程中,我希望应用程序也可以将图像与图像一一捕获我可以使用opencv进行一些图像分析,例如查找车道边缘或测试我的车前是否有东西等等。

我研究了示例应用程序 Camera2Video,现在我可以让我的应用程序保存从相机捕获的视频 mp4 文件。

我的下一步是让我的应用程序知道从相机捕获的每个图像何时准备就绪,或者 MediaRecorder 何时获取单个图像,以便我可以为后续过程拍摄该图像。

我的问题是,如何配置侦听器或任何可以让我的应用知道从相机捕获的每张图像何时准备就绪?

0 投票
1 回答
722 浏览

android - android的camera2 API的所有自动参数是什么

我正在使用 Android camera2 API 开发相机应用程序,并且我需要相机始终具有相同的配置,例如焦点、白平衡、曝光等。

我已经禁用了 AF、AE 和 AWB,但它似乎仍然会自动设置白平衡。我想知道是否还有其他一些我应该禁用的自动配置。

我在谷歌上没有找到类似的东西。

0 投票
2 回答
1355 浏览

android - Camera2 预览是黑色的,如果我在前面添加一个 GLSurfaceView

我想GLSurfaceView在 Camera2 API 预览 () 前做一个 OpenGL 动画 ( TextureView),但动画不透明。我已经GLSurfaceViewTextureView.

  • 它仅适用,如果我在setZOrderOnTop(true);中设置GLSurfaceView,但所有按钮和抽屉都在视图后面...

有没有办法使GLSurfaceView(动画)透明?

0 投票
1 回答
1176 浏览

android - android api 21+ camera2 api

我尝试运行此代码,但它说在 framworke.jar 中找不到某些东西

但我得到了这个错误,

请问我需要一些解释

0 投票
1 回答
652 浏览

android - 是否应该连续调用 onCaptureCompleted 方法?

我的相机(camera2 api)从电池中消耗了很多,并且设备在运行 5 分钟后很热。在试图找出问题所在的过程中,我看到当预览处于运行状态时,该onCaptureCompleted方法CameraCaptureSession.CaptureCallback被连续调用。正常吗?

0 投票
1 回答
17161 浏览

android - 在 Android 上访问高 fps 相机

有些手机官方支持高 fps 录制,例如 Galaxy S5 和 S6。我尝试了两者,两者都可以使用默认相机应用程序录制高 fps 视频(60 甚至 120 fps)。(或者在使用 Gear VR 的“Passthrough Camera”功能的 S6 上。)但是:当您通过标准 Android API 查询相机的功能时(在 4.4 和 5.0 上的 S5 和 5.1 上的 S6 上都尝试过,旧的和新的都试过了) camera2 APIs)在所有情况下,30 fps 被报告为最高可用。这是否意味着这些手机使用私有专有 API 来访问高 fps 功能,而没有标准方法来访问更高 fps?这是制造商的缺点(可能会随着未来的软件版本或手机而改变)还是我只是错过了什么?我什至不需要慢动作,

我尝试在旧相机 API 中查询相机 fps 的示例;

在 camera2 API 中相同:

我只得到范围:[15, 15], [24, 24], [10, 30], [15, 30], [30, 30](旧相机 API 的范围更小)。

在 camera2 API 中,我找到了一些访问高 fps 摄像机记录的方法:createConstrainedHighSpeedCaptureSession()。但它将高速视频录制定义为“帧速率 >=120fps”,所以我什至不需要 60 fps。无论如何,我查询了此功能,但似乎 S6 不支持它。我试过的代码:

它说它只支持功能 0、1、2、3、5、6。REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO 将是 9。

在这一点上,如果怀疑这些功能确实无法通过这些手机上的标准 API 获得的想法,我已经用完了。任何帮助表示赞赏。

我知道这个问题与此非常相似/相关:Capture high fps videos using new Camera API 但我的问题更笼统,既不针对旧相机 API 也不针对新相机 API 或特定设备。我也很好奇其他新旗舰设备通过标准 API 报告了什么支持 fps,因为我只能在 3 台设备上测试它。

0 投票
2 回答
3467 浏览

android - 从 TextureView 获取没有转换的位图

我目前正在开发一个使用 Camera2 的应用程序。我在缩放和翻译的 TextureView 上显示预览(我只需要显示图像的一部分)。我的问题是我需要分析整个图像。

我的 CameraDevice.StateCallback 中有什么:

在我的 SurfaceTextureListener 中:

位图只是我在 TextureView 中看到的(这是合乎逻辑的),但我想要整个图像。

可能吗 ?

谢谢, NiCLO