DirectXTK make_unique <AudioEngine>(flags) завершается ошибкой - PullRequest
0 голосов
/ 28 июня 2019

Я почти готов выпустить свою первую маленькую игру с моим игровым движком.Однако, заставив некоторых людей протестировать его, мы обнаружили, что вызов для получения указателя на интерфейс 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;
}

ОБНОВЛЕНИЕ: До сих пор пробовал что-то безуспешно.-Если тестер загрузил DLL-библиотеки DirectX в июне 2010 года, установил их и перезагрузил компьютер.-Они обновили все свои драйверы.-Если они проверили свою системную папку (все файлы XAudio2 _ #. Dll присутствуют).-У них есть Windows 10

...