我的问题是,只有当我在调试中碰到断点,然后再继续时,我才能听到声音。如果我不这样做,我就不会听到声音,尽管一切似乎都在播放。例如,在正确的时间触发onComplete回调。
我尝试过在代码中添加Sleep来模拟断点,但是它不起作用。
此错误仅在我使用OpenGL处理图形时才会发生。如果我将GDI+用于图形,那么一切听起来都很好。
DirectSound是我所拥有的唯一的健全实现,所以我没有用其他的声音包进行测试。
我确实找到了一些建议禁用Visual托管进程的信息,但我使用的是C++,它无论如何都不使用Visual托管过程。
任何帮助都将不胜感激,莱斯
发布于 2014-03-15 20:36:56
问题在于DirectSound的SetCooperativeLevel()中使用的HWND。在完成GetForegroundWindow()之后,我就通过glutCreateWindow()获取了HWND。相反,我不得不在下一个滴答中调用GetForegroundWindow(),因为在此之前,实际上还没有创建GetForegroundWindow()窗口,而对GetForegroundWindow()的调用实际上是引用glut中使用的shell窗口。
https://stackoverflow.com/questions/22276672
复制相似问题