问题标签 [oculusquest]
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.
unity3d - 无法在 Unity 中向 oculus 手部跟踪添加交互
我正在使用 oculus 集成包来实现手部跟踪并添加了 OVRCameraRig。在 LeftHandAnchor 下,我添加了 OVRCustomHandPrefab_L 并同样完成了右手。我还启用了物理功能,因此双手可以工作,我可以在游戏中将物品从桌子上推开。
但是,我想实现抓取机制,所以我将 HandsManager 预制件添加到场景中,并将上面提到的手预制件放置在左右手字段中。最后,我在 InteractableToolsSDKDriver 中添加了,但没有一个可交互的工具起作用,小蓝点根本不可见。
我也没有收到任何错误。请帮忙,我应该如何解决这个问题才能让 Interactable 工具正常工作?
android - AWS Chime(webrtc 音频)+ Oculus Quest 2 - 即使 getStreamVolume 显示不同的值,setStreamVolume 也不会改变实际音量
我使用亚马逊的 AWS Chime 建立 voip 音频通信。我的实际设置有点复杂,我将chime android sdk构建到一个模块中,并进行了一些更改以删除视频部分,并将其包含在我基于 Unity 的 Oculus Quest 2 应用程序中。不过,我也测试了 Chime 的演示应用,通过 Android Studio 直接将 APK 发送到 Quest 2;它运行并正确连接到会议、流式音频甚至聊天。
不幸的是,使用硬件按钮更改音量没有任何效果。
我将以下代码段添加到演示应用程序中,用于测试目的
首先,在 Quest 上,每次更改都发生在 uricontent://settings/system/volume_music_speaker
上,连接时Audiomanage.getMode()
从 0 到 3 的更改MODE_IN_COMMUNICATION
。
在最近的 Oculus 软件更新后,一个音频流上的每一个更改都会自动应用到所有其他音频流。这就是为什么如果我按两次硬件音量按钮,这就是我的日志显示的原因
显示所有流的值都发生了变化(每个流都相对于它们自己的最大/最小值。例如从 1 到 5 的 CALL 等)
问题是即使我到达这种情况
与我交谈的人的实际音量没有下降。
Chime 的主 sdk 依赖于开发人员发布的预编译辅助 sdk,其代码不公开。我对其进行了反编译,JD GUI
但其中包含实际内容的方法受到保护。我只能在他们的 webrtc 库中看到, anAudioTrack
被实例化并用于流式传输语音字节,并且它设置为AudioSessioId
0 。AudioManager
将模式设置为 3,仅此而已(可见)。如果我有对 AudioTrack 的引用,我可以尝试直接更改音量,但它不会暴露。
我试过了:
- 反编译媒体 sdk 以查看发生了什么,但它受到保护。
NotificationListenerService
通过注册为 a并调用来寻找正在进行的 AudioSessionsMediaSessionManager#getActiveSessions
,但不存在来自 chime 的会话(确实出现了后台的 spotify,所以我的代码有效)- 做
AudioManager.setMode(0)
,但即使模式改变,音量仍然没有下降。 - 附加
audiofx.Equalizer
到会话 0(已弃用)只是为了看看我是否可以改变所有频段的增益并降低全局输出组合的音量。但它对会话 0 没有影响。(我仔细检查了将 eq 应用于测试 AudioTrack 和测试 MediaPlayer 的代码,它在两种情况下都有效) - 考虑使用 NDK 来访问 AudioFlinger,但它确实看起来很复杂而且矫枉过正。
- 在 Chime 的 github repo 上写了一个问题,因为我正在寻找答案,所以很难得到答案,而且该应用程序是为 Android 设计的,音量确实会改变
- 编写一个测试 android 应用程序,在其中我在流模式下创建了一个 AudioTrack,将其属性设置为
USAGE_VOICE_COMMUNICATION
andCONTENT_TYPE_SPEECH
,将 AudioManager 的模式更改为 3 并通过 Android Studio 在 Oculus Quest 上运行它。通过按下硬件音量按钮和以编程方式正确更改了音频。因此,它一定是 chime hidden media sdk 所做的与 Quest 的 Android 不兼容的事情。
最终,我不明白的是,第三方 webrtc 库如何能够在 MODE_IN_COMMUNICATION 中播放 AudioTrack,即使我以编程方式降低每个流的音量,例如AudioManager.STREAM_MUSIC
,AudioManager.STREAM_VOICE_CALL
等,实际音量不会改变而getStreamVolume()
另有说法。而且,怎么可能允许第三方库播放音频,而开发人员无法访问所有播放内容并控制它们。
我希望在 Android 音频和 Oculus Quest 内部恶作剧方面比我更有经验的人能够对正在发生的事情有所了解。
unreal-engine4 - 从 MacOS 开发 Oculus Quest 1。缺少 Oculus 可执行操作。Oculus 子系统问题
我想强调一下,我已经在 Unreal 和 Oculus 论坛上问过这个问题,但我没有得到任何回应。
我正在学习 Epic Games 2 中名为 Oculus VR Production for Unreal Engine 的课程。
我花了好几个小时来设置这个项目。我一个接一个地克服了一些困难,但是我已经在这个上堆叠了 5 个小时。
我认为值得一提的是,我正在为 MacOS 上的 Oculus Quest 1 进行开发。
尝试进行第一步“验证授权”时,我的 Oculus 可执行操作丢失。
我打开了 Oculus 子系统,禁用了所有其他子系统。我为 Android 平台验证了该项目,因此该项目按预期在 Oculus 上启动。我还编辑了项目的文件 DefaultEngine.ini 并添加了以下几行:
我还用这些行编辑了引擎的文件 AndroidEngine.ini
但我也尝试过这些行
当然,我更换了我的 App ID。
所有 Oculus 插件均已启用。
那没有效果。该项目在我的 Oculus Quest 上运行,但缺少来自 Oculus 子系统的可执行操作。
我为此花了整整 9 个小时,所以我可以自信地说我没有想法。任何帮助将不胜感激。
谢谢。
unity3d - Oculus Store 上的“GCP API 密钥硬编码在应用程序中”警告
我们在 Unity Project 中使用 firebase 插件进行 google 登录。
我们正在处理 VR 和非 VR 项目。我们不使用谷歌登录 VR,但它在我们的项目中。
上传到 oculus 任务商店时,我们在“应用程序中硬编码的 GCP API 密钥”中收到警告。
如果我们在我们的项目中删除了 firebase 插件,那么在我们上传到商店后,警告不会显示。
上述警告的原因是什么。提出任何修复它的建议。
unity3d - 如何在 App Lab 上传 VR 指南/游览多人 Quest2 游戏
我在 Oculus 开发者论坛上问过我的问题: https ://forums.oculusvr.com/t5/Oculus-Quest-Development/Upload-a-two-multiplayer-apk-s-on-the-App-Lab/ mp/887556#M3649 仍在等待答案。
我在 Unity 中创建了 2 个带有 .obb 文件的 apk,用于同一个 VR 应用程序;一个是给控制体验的导游,可以单独或和游客一起穿行,另一个apk是给无法启动体验,需要导游先进入的游客构建的。
我正在尝试通过 Oculus 应用实验室提交此体验。而且我已经上传了指南.apk(仍在等待批准),但我想知道,链接这两个应用程序的正确方法是什么?
有没有人尝试在 App Lab 上上传这样的服务器/客户端游戏?谢谢
android-studio - 错误:找不到用于签署配置“调试”的 android.debug.keystore'
我正在阅读文档 Native-MobileSDK-Getting Started-Android Studio Basics,https://developer.oculus.com/documentation/native/android/mobile-studio-basics/,我坚持使用以下 Android工作室错误:
我注意到我的目录中没有 android.debug.keystore 文件。当移动 SDK 下载中的 VrSamples 不包含文件 android.debug.keystore 时,我不确定为什么 Android Studio Basics 文档中显示此文件。
有人可以帮我解决这个问题吗?我是 Android 开发的新手。
我正在寻找 Quest 2 的原型。我不打算很快向应用商店提交任何东西。
unreal-engine4 - 未能缓存成就
我目前正在使用 Unreal 4.26 为 Oculus Quest 开发游戏。
根据Oculus Developer 门户网站的这篇文章和这篇文章,我在我的项目中设置了 Oculus 在线子系统,它在启动时成功检查了 App Entitlement。
尽管如此,我在处理成就方面遇到了麻烦。我的缓存成就节点总是返回失败。当然,如果我尝试写任何成就进度,它也会失败。
我的 DefaultEngine.ini 有以下代码:
我还添加了一个 Config/Android/AndroidEngine.ini 文件,其中包含以下内容:
尽管最后一件事,当我构建我的应用程序时,会创建一个 /Saved/Temp/Android/Engine/Config/Android/AndroidEngine.ini 文件,其中包含以下内容:
我不知道这是否可能导致我的成就缓存失败。
有没有人知道我可能会错过什么?
c++ - 通过 C++ 获取 Oculus Quest Mac 地址
我一直在尝试从 Oculus Quest 2 获取 Mac 地址,起初我找到了 FGenericPlatformMisc::GetMacAddress,并在将其作为蓝图公开的蓝图函数库上实现了它。努力获取我的 windows mac 地址,但是当我尝试在 oculus 构建中使用它时,什么也没有返回。我知道这个功能在所有平台上都被弃用并且不可靠,所以有人知道一些从 android / oculus 获取 mac 的方法吗?