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

ARFoundation与后置摄像头兼容问题及替代方案咨询

问题解答与解决方案

1. 活跃AR会话中推流后置摄像头的官方支持方案

AR子系统(如ARCore/ARKit)运行时会独占摄像头硬件资源,直接用Agora默认的摄像头采集必然导致资源冲突,官方推荐的正确做法是复用AR子系统输出的摄像头帧数据,而非重复打开摄像头:

  • 禁用Agora默认摄像头采集逻辑,调用SetExternalVideoSource(true)开启外部视频源模式
  • 从AR子系统获取原始摄像头帧数据:比如在Unity的ARFoundation中,通过ARCameraManager的frameReceived事件获取ARFrame,提取其中的YUV格式纹理或像素数据
  • 将帧数据转换为Agora要求的格式(通常为YUV420),再通过PushVideoFrame接口将数据推送给Agora完成推流

这种方式完全复用AR会话的摄像头资源,不会出现冲突冻结问题,是官方文档明确推荐的AR场景推流方案。

2. 用屏幕共享替代摄像头推流的实现方法(含屏蔽UI)

如果复用AR帧数据的方案暂时无法落地,用屏幕共享替代是可行的,且能实现屏蔽UI的需求:

屏蔽UI的核心思路

将AR内容与UI元素分离到不同渲染层级,捕获屏幕时仅渲染AR内容所在层级:

  • 创建两个层级:ARContent和UI,将AR场景对象放入ARContent,所有UI元素放入UI
  • 新建一个专门用于捕获的Camera,设置其Culling Mask仅勾选ARContent层级,同时关闭该Camera的显示(仅用于后台渲染)
  • 将这个Camera的输出渲染到RenderTexture上,以此作为推流源

推流实现

将上述RenderTexture作为外部视频源推送给Agora,或直接配置Agora屏幕共享模块,指定捕获目标为该渲染纹理即可。这种方式捕获的画面完全不含UI元素,同时完整保留AR场景内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:15:54