Unity+Vuforia安卓AR应用视频无法嵌入构建问题求助
Unity + Vuforia 安卓AR应用视频白屏问题解决方案
针对你遇到的编辑器运行正常、安卓构建后仅显示白屏无法播放视频的问题,以下是精准排查和修复方向:
1. 视频导入平台配置
- 选中视频文件,在Inspector面板展开Platform Specific Settings,勾选
Override for Android:- 将
Video Player选项改为Android Media Player(Unity自带播放器在部分安卓设备上存在兼容性问题,系统原生播放器稳定性更强) - 确认
Codec设置为Auto或明确指定H.264,同时检查视频分辨率不超过目标设备支持上限(优先选择1080P及以下分辨率) - 视频文件名仅使用英文、数字和下划线,禁止包含中文或特殊字符
- 将
2. StreamingAssets 正确加载方式
安卓平台下,Application.streamingAssetsPath指向APK内的压缩资源,无法直接通过文件路径读取,必须用UnityWebRequest加载视频:
IEnumerator LoadVideoFromStreamingAssets() { string videoUrl = Path.Combine(Application.streamingAssetsPath, "target_video.mp4"); using (UnityWebRequest request = UnityWebRequestMultimedia.GetVideoClip(videoUrl, VideoClip.Encoding.Default)) { yield return request.SendWebRequest(); if (request.result == UnityWebRequest.Result.Success) { VideoClip loadedClip = DownloadHandlerVideoClip.GetContent(request); VideoPlayer videoPlayer = GetComponent<VideoPlayer>(); videoPlayer.clip = loadedClip; videoPlayer.Play(); } else { Debug.LogError("视频加载失败: " + request.error); } } }
注意:不要直接给VideoPlayer的url字段赋值为StreamingAssets路径,这种方式在安卓平台不生效。
3. IL2CPP 构建优化配置
- 打开
Player Settings > Other Settings > Configuration,确保Allow unsafe code处于勾选状态(部分视频解码逻辑依赖此设置) - 若开启了
Strip Engine Code,需在项目根目录创建Linker.xml文件,添加视频相关程序集的保留规则,避免被构建工具裁剪:
<linker> <assembly fullname="UnityEngine.Video" preserve="all"/> <assembly fullname="UnityEngine.UI" preserve="all"/> <assembly fullname="UnityWebRequestMultimedia" preserve="all"/> </linker>
- 确认
Target Architecture仅勾选ARM64,不要混合勾选ARMv7,防止架构冲突导致资源加载异常
4. 渲染与层级设置
- 实例化长方体的材质使用
Unlit/Texture(无光照影响),而非Standard材质(可能因光照参数错误导致白屏) - 配置VideoPlayer的
Render Mode为Material Override,并指定材质的_MainTex纹理槽 - 检查Vuforia AR Camera的
Clear Flags设置为Solid Color(建议设为黑色),避免背景渲染干扰视频显示
内容的提问来源于stack exchange,提问作者MoMellouky
相关产品推荐
相关产品推荐

