You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ARCore与CameraX搭配使用?相关实现方案咨询

ARCore 与 CameraX 集成方案

是可以将ARCore与CameraX搭配使用的,无需局限于默认的Camera2 API,以下是具体实现思路和要点:

依赖配置

在模块级build.gradle文件中添加必要的依赖:

// ARCore 核心依赖(替换为最新版本)
implementation 'com.google.ar:core:1.42.0'
// CameraX 核心与视图依赖
implementation 'androidx.camera:camera-core:1.3.0'
implementation 'androidx.camera:camera-view:1.3.0'
implementation 'androidx.camera:camera-lifecycle:1.3.0'

核心实现步骤

  • 初始化ARSession与CameraX
    先初始化ArSession,并获取ARCore推荐的相机配置(分辨率、帧率),以此配置CameraX的ImageAnalysis用例,确保两者的相机参数匹配,避免帧数据不兼容。

  • 帧数据传递与AR更新
    通过CameraX的ImageAnalysis.Analyzer捕获相机帧,将ImageProxy转换为ARCore可处理的Frame对象:

    val imageProxy = ... // CameraX 捕获的帧
    val frame = session.createFrame()
    frame.setImageData(
        imageProxy.image!!.planes[0].buffer,
        imageProxy.width,
        imageProxy.height,
        // 对应相机格式,通常为ImageFormat.YUV_420_888
        ImageFormat.YUV_420_888,
        // 相机传感器方向,需和设备屏幕方向匹配
        cameraInfo.sensorRotationDegrees
    )
    // 让ARCore处理帧,进行跟踪与检测
    session.update(frame)
    // 处理完后关闭ImageProxy,避免内存泄漏
    imageProxy.close()
    
  • 生命周期同步
    在Activity/Fragment的onResume、onPause方法中同步管理ArSession和CameraX的生命周期:

    • onResume时,重启ArSession和CameraX用例
    • onPause时,暂停ArSession并关闭CameraX的图像分析用例

关键注意事项

  • 确保设备同时满足ARCore的AR支持要求和CameraX的最低系统版本(Android 5.0+)
  • 必须申请相机权限,ARCore和CameraX都依赖该权限才能正常工作
  • 避免同时使用Camera2和CameraX的相机实例,防止相机资源冲突

内容的提问来源于stack exchange,提问作者Dev007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 09:05:15