0

我正准备用我的游戏引擎发布我的第一个小游戏。但是,通过让一些人对其进行测试,我们发现我的一位测试人员调用获取指向 AudioEngine 接口的指针失败。

该呼叫在我的台式机和笔记本电脑上都可以正常工作,并且在测试仪 2 的计算机上也可以正常工作。但是,测试人员 1 的计算机将无法成功调用。

“失败”是指它抛出一个异常,我正在使用 try/catch 块处理该异常。异常的“什么”只是告诉我“AudioEngine”所以没有帮助。他有一台高度定制的计算机,它使用两个未链接的显卡并处理单独的任务。他使用我在桌面上设置的相同虚拟音频电缆(用于分隔语音源以便于视频编辑:流媒体/游戏录制)。

如果有人知道可能导致此调用失败的任何线索,我们将不胜感激。如果您需要任何其他信息,请告诉我。初始化代码如下:

//aud engine declaration is in the header for the class
unique_ptr<AudioEngine> audEngine;

//function being called
bool AudioEngineClass::InitializeAudioEngine()
{
//Call this to create the DXTK Audio Engine

//Setup flags:
AUDIO_ENGINE_FLAGS eflags = AudioEngine_Default;

eflags = eflags | AudioEngine_EnvironmentalReverb | //Enables environmental reverb for 3D (required for 3D audio)
                  AudioEngine_ReverbUseFilters | //Enables additional features for 3D positional audio reverb
                  AudioEngine_UseMasteringLimiter; //Enables a mastering volume limiter to avoid distortion and clipping with 3D audio.

//MessageBox(NULL, "Attempting to assign AudioEngine Pointer", "AudioEngine.InitializeAudioEngine", MB_OK);

try 
{
    audEngine = make_unique<AudioEngine>(eflags);
}
catch(exception& e)
{
    //Tester 1 falls into this

    string exceptionStr = e.what();
    string outputStr = "Failed to Initialize Audio Engine. Exception: \n";
    outputStr += exceptionStr;
    MessageBox(NULL, outputStr.c_str(), "AudioEngine.InitializeAudioEngine", MB_OK);
}

//MessageBox(NULL, "Got past AudioEngine Pointer Assignment", "AudioEngine.InitializeAudioEngine", MB_OK);

if (!audEngine)
{
    //failed to create audio engine.
    initialized = false;
}
else
{
    initialized = true;
}


return initialized;
}

更新:一整天都在尝试东西,到目前为止没有运气。-让 Tester 下载 2010 年 6 月的 DirectX DLL 并安装它们并重新启动计算机。-让他们更新所有驱动程序。- 让他们检查他们的系统文件夹(所有 XAudio2_#.dll 文件都存在)。- 他们有 Windows 10

4

0 回答 0