Не могу услышать Directsound, если я не отлаживаю шаг

Моя проблема в том, что я слышу звуки только тогда, когда достигаю точки останова при отладке, а затем возобновляю работу. Если я попытаюсь иначе, я не буду слышать звуки; хотя все, кажется, играет. Например, обратные вызовы onComplete запускаются в нужное время.

Я попытался посыпать Sleep в коде для имитации точек останова, но это не работает.

Эта ошибка возникает только тогда, когда я использую OpenGL для графики. Если я использую GDI+ для графики, то все звучит нормально.

DirectSound - единственная звуковая реализация, которую я имею, поэтому я не тестировал другие звуковые пакеты.

Я нашел некоторую информацию, предлагающую отключить процесс размещения Visual Studio, но я использую C++, который в любом случае не использует процесс размещения Visual Studio.

Любая помощь будет оценена Спасибо Les

1 ответ

Решение

Проблема заключалась в том, что HWND использовался в SetCooperativeLevel() DirectSound. Я получал HWND через GetForegroundWindow() сразу после завершения glutCreateWindow(). Вместо этого у меня был до следующей галочки вызывать GetForegroundWindow(), потому что до этого окно перенасыщения фактически не создавалось, и вызов GetForegroundWindow() фактически ссылался на окно оболочки, используемое в перенасыщении.

Другие вопросы по тегам