问题标签 [android-camerax]

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 投票
0 回答
441 浏览

android-studio - 项目在CameraXBasic中哪里定义了PermissionsFragmentDirections类?

以下代码来自https://github.com/android/camera/tree/master/CameraXBasic的 CameraXBasic 项目

您可以在https://github.com/android/camera/blob/master/CameraXBasic/app/src/main/java/com/android/example/cameraxbasic/fragments/PermissionsFragment.kt查看完整代码

我搜索了整个项目,但找不到PermissionsFragmentDirections. 你能不能告诉我?

PermissionsFragment.kt

0 投票
1 回答
3545 浏览

android - Android CameraX - 录制视频时的面部检测

我在 Android 中使用带有 Firebase ML Kit 的新库 CameraX,并在设备可以检测的每一帧中检测人脸。

所以我这样设置CameraX:

现在,所有工作都顺畅无阻,在我这样做的同时,我想录制一段视频。

所以基本上我想在录制视频时检测面部

我试过了:

但是我收到一个错误,说参数太多,所以我想这不是正确的方法。

我知道这个库仍处于 alpha 阶段,但我想有办法做到这一点。

即使没有jet,在使用Firebase ML录制视频的同时实现人脸检测的另一种方法是什么?

0 投票
1 回答
4005 浏览

androidx - CameraX - 无法获取用例 androidx.camera.core.Preview-4817149b-004d-42b8-a103-ea998038268b - java.lang.IllegalArgumentException 的相机 ID

在实现来自 Google CodeLabs 的代码时,我在启动 CameraActivity - CameraX - Google Code Labs时收到此崩溃报告

日志:

进程:in.novopay.novoloan,PID:5845 java.lang.IllegalArgumentException:无法获取用例 androidx.camera.core.Preview-4817149b-004d-42b8-a103-ea998038268b 在 androidx.camera.camera2.impl 的相机 ID .Camera2DeviceSurfaceManager.getCameraIdFromConfig(Camera2DeviceSurfaceManager.java:310) 在 androidx.camera.camera.camera2.impl.Camera2DeviceSurfaceManager.requiresCorrectedAspectRatio(Camera2DeviceSurfaceManager.java:268) 在 androidx.camera.core.Preview.updateUseCaseConfig(Preview.java:387) 在 androidx。 camera.core.UseCase.(UseCase.java:92) at androidx.camera.core.Preview.(Preview.java:99) at in.novopay.uicontrollibrary.activities.CameraActivity.startCamera(CameraActivity.kt:94) at in .novopay.uicontrollibrary.activities.CameraActivity.access$startCamera(CameraActivity.kt:30) 在 in.novopay.uicontrollibrary.activities.CameraActivity$checkPermission$1.run(CameraActivity.kt:45)​​ 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler. java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:7000) 在 java.lang.reflect.Method.invoke(Native Method) 在 com .android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 原因:java.lang.IllegalArgumentException:选项不存在:选项{id=camerax.core.camera.lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}CameraActivity$checkPermission$1.run(CameraActivity.kt:45)​​ at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper。在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller 的 java.lang.reflect.Method.invoke(Native Method) 的 android.app.ActivityThread.main(ActivityThread.java:7000) 的循环(Looper.java:164)。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 运行(RuntimeInit.java:441) 原因:java.lang.IllegalArgumentException:选项不存在:Option{id=camerax.core.camera .lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}CameraActivity$checkPermission$1.run(CameraActivity.kt:45)​​ at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper。在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller 的 java.lang.reflect.Method.invoke(Native Method) 的 android.app.ActivityThread.main(ActivityThread.java:7000) 的循环(Looper.java:164)。在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 运行(RuntimeInit.java:441) 原因:java.lang.IllegalArgumentException:选项不存在:Option{id=camerax.core.camera .lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:7000) 在 java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 原因:java.lang .IllegalArgumentException:选项不存在:Option{id=camerax.core.camera.lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:7000) 在 java.lang.reflect.Method.invoke (Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 原因:java.lang .IllegalArgumentException:选项不存在:Option{id=camerax.core.camera.lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 原因:java.lang.IllegalArgumentException:选项不存在:Option{id=camerax .core.camera.lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 原因:java.lang.IllegalArgumentException:选项不存在:Option{id=camerax .core.camera.lensFacing, valueClass=class androidx.camera.core.CameraX$LensFacing, token=null}

0 投票
2 回答
2460 浏览

android - 图片已经关闭。CameraX 分析仪

我正在尝试将 ProxyImage 从 cameraX 分析器转换为位图,以使用张量流光分析图像。所以我实现了cameraX Analyze回调,它将图像作为proxyImage。我需要将那个 proxyImage 转换为位图。如果我在 UI 线程上进行此对话,它会使相机预览滞后。所以我想用协程来做。现在的问题是,每当我将 proxyImage 传递给协程以将其转换为后台线程上的位图时,它都会因“图像已关闭”的 IllegalStateException 而崩溃。

我认为下一帧正在取消引用前一帧,而应用程序正在后台线程中将 proxyImage 转换为位图。我阅读了有关文档,他们在那里说

从该方法返回后,图像引用将关闭。因此,该方法应完成分析或制作副本,而不是将图像参考传递到分析方法之外。

我在这里感到困惑的是,当我们将图像传递到分析方法之外时,复制图像意味着什么。我如何处理这种情况。下面是代码片段。

将 proxyImage 转换为 Bitmap 的方法。

提前感谢您的帮助。

0 投票
6 回答
7333 浏览

android - 将 CameraX 捕获的 ImageProxy 转换为位图

我正在使用 CameraX,并且很难将捕获的 ImageProxy 转换为位图。经过搜索和尝试,我制定了解决方案。后来我发现它不是最佳的,所以我改变了设计。这迫使我放弃了几个小时的工作。

由于我(或其他人)将来可能需要它,因此我决定在此处作为问题发布并发布并回答它以供参考和审查。如果您有更好的答案,请随时添加。

相关代码为:

0 投票
0 回答
130 浏览

android - Lollipop 上的 CameraX 和 FirebaseVision 图像失败

我正在尝试使用 CameraX 和 FirebaseVision API 创建 OCR POC。

我已经设置了分析器,在 ImageAnalysis.Analyzer#analyzer() 中,我得到了 yuv_420_888 格式的 Image 回调。

这似乎是 Android 5.0 上的问题,FirebaseVision 无法识别文本。

我尝试使用转储位图

https://firebase.google.com/docs/reference/android/com/google/firebase/ml/vision/common/FirebaseVisionImage.html#fromMediaImage(android.media.Image,%20int)

到外部缓存,调试,结果是全是绿色的。

但同样的设置也适用于其他 Android 平台。

我遇到了 https://issuetracker.google.com/issues/37014456

这表明仅在 5.1 之后才修复的 YUV 图像存在问题。

我可以以某种方式调整 CameraX 以提供 FirebaseVision 在 Android 5.0 上识别的格式吗?

0 投票
2 回答
2993 浏览

android - CameraX 使 ImageAnalysis 的大小与 Preview 相同

我希望能够在预览时获得用于分析步骤的准确图像。我有预览用例:

在它旁边我有分析用例配置:

我的预览是全屏的,所以它的大小是 1440x2560。但是,如果我尝试在分析器中从 ImageProxy 获取尺寸,我会得到 1920x1050,它似乎有不正确的尺寸并且宽度随高度切换。为什么会这样?如何强制我的分析步骤具有与全屏相同的尺寸?

0 投票
1 回答
2001 浏览

android - CameraX 相机加载速度慢

因此,我从使用传统相机 api 迁移到 CameraX,尽管设置非常简单,但我注意到了一个问题。现在,相机开始显示预览的时间几乎是以前的两倍,如果不是更长的话。我正在 Galaxy s7 上进行测试。我的代码如下所示:

关于如何让它看起来更快的任何想法?

PS我偶尔也会在预览中看到撕裂

0 投票
3 回答
656 浏览

android - Android:无法将 LifeCycleOwner 转换为 CamerX 预览代码中的活动错误

我正在尝试使用相机 API 在 textureView 上显示相机的预览...在 java 中几乎没有任何与 cameraX api 相关的教程,因此很难理解 API 的工作原理...代码给了我一个运行时异常其中指出

“活动无法转换为 lifeCycleowner”

0 投票
3 回答
890 浏览

android - java.lang.NoSuchMethodError:没有超级方法

尝试在 Android 中使用CameraX 。我正在使用代码链接。但我面临错误
java.lang.NoSuchMethodError: No super method getLifecycle()Landroidx/lifecycle/Lifecycle; 在 Landroidx/core/app/ComponentActivity 类中;或其超类

错误图片