我一直在尝试通过将 FluidSynth 与 SDL_Mixer 一起使用来解决这个问题。
我在 Windows 上使用最新版本 SDL_Mixer 1.2.12(来自官方网站的 DLL)和 FluidSynth 1.1.6(来自这里的 DLL ),它们应该可以相互配合。
我已根据 SDL_Mixer 将 FluidSynth DLL 重命名为“libfluidsynth.dll”,并将其放在“SDL_Mixer.dll”旁边。我已经通过 SDL_SetSoundFonts()、SDL_SOUNDFONTS 甚至 SDL_putenv() 传递了 sf2 的绝对和相对路径。我试过在 Mix_OpenAudio() 之前和之后拨打电话。
但是,当我通过 SDL_Mixer 播放 MIDI 文件时,我仍然只能得到默认的 Timidity++ 输出。Mix_GetError() 不返回任何消息。我错过了什么?