我并不精通C++或SDL_Mixer,但我代表Doom社区提出这个问题。简而言之,在Windows Vista或7上使用SDL_Mixer时,没有人能够弄清楚如何独立控制普通声音和MIDI声音的音量。让Eternity Engine的作者James Haley用他自己的话来说吧:“似乎在Windows Vista或7下,原生MIDI的独立音量概念不存在,因为在任何具有MIDI音量滑块的应用程序中(包括大多数使用SDL_mixer的游戏),都会影响数字声音输出的音量。这使得尝试调整音乐相对音量以获得舒适感变得不可能。” 有人找到了解决方法吗?考虑到微软似乎在整个操作系统中都缺乏控制单独声音设备音量的方式,我猜这是不可能的。 我听说过各种解决方法,都涉及Timidity驱动程序,但这需要用户超越仅仅在系统上安装游戏。我知道唯一一个明确解决此问题的端口是ZDoom,但它使用GPL不兼容的FModEx,因此不是一个合适的解决方案。
如果您想查看一些代码,Chocolate Doom可能是最容易理解的Doom源代码端口,您可以在此处获取其源代码here。
欢迎提出其他开源声音和音乐库的建议。
如果您想查看一些代码,Chocolate Doom可能是最容易理解的Doom源代码端口,您可以在此处获取其源代码here。
欢迎提出其他开源声音和音乐库的建议。