当为Rfit配置音频时,你需要判断是否Rift耳机是有效的和暂停音效当你的应用没有焦点时。
用户能使能Rift耳机和扩音器在Oculus应用中或者使用默认的Window音频设备。下面的屏幕截图展示Rift耳机不使能和扩音器使能:
耳机设置通过函数ovr_GetAudioDeviceOutGuid自动处理,它返回目标硬件的GUID当播放音频时。类似的,使用ovr_GetAudioDeviceInGuid来识别使用的作为输入的扩音器设备。
FMOD
如果你察觉Rift耳机是可以的,使用类型下面的代码为FMOD:
ERRCHECK(FMOD::System_Create(&sys)); GUIDguid; ovr_GetAudioDeviceOutGuid(&guid); intdriverCount=0; sys->getNumDrivers(&driverCount); intdriver=0; while(driver<driverCount) { charname[256]={0}; FMOD_GUIDfmodGuid={0}; sys->getDriverInfo(driver,name,256,&fmodGuid,nullptr,nullptr,nullptr); if(guid.Data1==fmodGuid.Data1&& guid.Data2==fmodGuid.Data2&& guid.Data3==fmodGuid.Data3&& memcmp(guid.Data4,fmodGuid.Data4,8)==0) { break; } ++driver; } if(driver<driverCount) { sys->setDriver(driver); } else { // error rift not connected }Wwise
如果你觉察到Rift耳机是可以的,使用类似下面的代码为Wwise:
AkInitSettings initSettings; AkPlatformInitSettings platformInitSettings; AK::SoundEngine::GetDefaultInitSettings( initSettings ); AK::SoundEngine::GetDefaultPlatformInitSettings( platformInitSettings ); // Configure initSettings and platformInitSettings... WCHAR outStr[128]; if (OVR_SUCCESS(ovr_GetAudioDeviceOutGuidStr(outStr))) { initSettings.eMainOutputType = AkAudioAPI::AkAPI_Wasapi; platformInitSettings.idAudioDevice = AK::GetDeviceIDFromName(outStr); }VR声音最佳实践
音频是一个重要的部分在虚拟体验中,它也是重要的所有的VR应用提供一个舒服的听觉效果为用户。开发者应用选择一个合理的声音大小(它是一致大小的在不同体验中)。为了达到这,Oculus推荐下面的最佳实践。
首先,目标-18LUFS在最终的配置中,使用工具就像Avid的pro Limited Plugin,Nugen的VisLM,KlangFreund LUFS Meter,Audacity VuMeter,或者类似的响度测量工具。
其次,测量你的体验反对的音频大小在发布的Oculus体验中,特别是周围音频在房间和理想仓中体验。设置所有系统的滚动条让理想仓和房间声音舒服,随后你的体验配置这个声音大小。
最后,配置你的应用使用Rift耳机。这能确保你正创建和配置的声音有一个频繁适当内容为耳机(很多Oculus用户会使用)。
为了坚持这是指导,我能能保证我们的Oculus VR用户会有一个令人舒适的音频体验。