问题标签 [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.
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
android - Android CameraX - 录制视频时的面部检测
我在 Android 中使用带有 Firebase ML Kit 的新库 CameraX,并在设备可以检测的每一帧中检测人脸。
所以我这样设置CameraX:
现在,所有工作都顺畅无阻,在我这样做的同时,我想录制一段视频。
所以基本上我想在录制视频时检测面部。
我试过了:
但是我收到一个错误,说参数太多,所以我想这不是正确的方法。
我知道这个库仍处于 alpha 阶段,但我想有办法做到这一点。
即使没有jet,在使用Firebase ML录制视频的同时实现人脸检测的另一种方法是什么?
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}
android - 图片已经关闭。CameraX 分析仪
我正在尝试将 ProxyImage 从 cameraX 分析器转换为位图,以使用张量流光分析图像。所以我实现了cameraX Analyze回调,它将图像作为proxyImage。我需要将那个 proxyImage 转换为位图。如果我在 UI 线程上进行此对话,它会使相机预览滞后。所以我想用协程来做。现在的问题是,每当我将 proxyImage 传递给协程以将其转换为后台线程上的位图时,它都会因“图像已关闭”的 IllegalStateException 而崩溃。
我认为下一帧正在取消引用前一帧,而应用程序正在后台线程中将 proxyImage 转换为位图。我阅读了有关文档,他们在那里说
从该方法返回后,图像引用将关闭。因此,该方法应完成分析或制作副本,而不是将图像参考传递到分析方法之外。
我在这里感到困惑的是,当我们将图像传递到分析方法之外时,复制图像意味着什么。我如何处理这种情况。下面是代码片段。
将 proxyImage 转换为 Bitmap 的方法。
提前感谢您的帮助。
android - 将 CameraX 捕获的 ImageProxy 转换为位图
我正在使用 CameraX,并且很难将捕获的 ImageProxy 转换为位图。经过搜索和尝试,我制定了解决方案。后来我发现它不是最佳的,所以我改变了设计。这迫使我放弃了几个小时的工作。
由于我(或其他人)将来可能需要它,因此我决定在此处作为问题发布并发布并回答它以供参考和审查。如果您有更好的答案,请随时添加。
相关代码为:
android - Lollipop 上的 CameraX 和 FirebaseVision 图像失败
我正在尝试使用 CameraX 和 FirebaseVision API 创建 OCR POC。
我已经设置了分析器,在 ImageAnalysis.Analyzer#analyzer() 中,我得到了 yuv_420_888 格式的 Image 回调。
这似乎是 Android 5.0 上的问题,FirebaseVision 无法识别文本。
我尝试使用转储位图
到外部缓存,调试,结果是全是绿色的。
但同样的设置也适用于其他 Android 平台。
我遇到了 https://issuetracker.google.com/issues/37014456
这表明仅在 5.1 之后才修复的 YUV 图像存在问题。
我可以以某种方式调整 CameraX 以提供 FirebaseVision 在 Android 5.0 上识别的格式吗?
android - CameraX 使 ImageAnalysis 的大小与 Preview 相同
我希望能够在预览时获得用于分析步骤的准确图像。我有预览用例:
在它旁边我有分析用例配置:
我的预览是全屏的,所以它的大小是 1440x2560。但是,如果我尝试在分析器中从 ImageProxy 获取尺寸,我会得到 1920x1050,它似乎有不正确的尺寸并且宽度随高度切换。为什么会这样?如何强制我的分析步骤具有与全屏相同的尺寸?
android - CameraX 相机加载速度慢
因此,我从使用传统相机 api 迁移到 CameraX,尽管设置非常简单,但我注意到了一个问题。现在,相机开始显示预览的时间几乎是以前的两倍,如果不是更长的话。我正在 Galaxy s7 上进行测试。我的代码如下所示:
关于如何让它看起来更快的任何想法?
PS我偶尔也会在预览中看到撕裂
android - Android:无法将 LifeCycleOwner 转换为 CamerX 预览代码中的活动错误
我正在尝试使用相机 API 在 textureView 上显示相机的预览...在 java 中几乎没有任何与 cameraX api 相关的教程,因此很难理解 API 的工作原理...代码给了我一个运行时异常其中指出
“活动无法转换为 lifeCycleowner”
android - java.lang.NoSuchMethodError:没有超级方法
尝试在 Android 中使用CameraX 。我正在使用代码链接。但我面临错误
java.lang.NoSuchMethodError: No super method getLifecycle()Landroidx/lifecycle/Lifecycle; 在 Landroidx/core/app/ComponentActivity 类中;或其超类