我一直在尝试使用FluidSynth和SDL_Mixer来解决this problem。
我在Windows上使用最新版本SDL_Mixer 1.2.12(来自官方网站的DLL)和FluidSynth 1.1.6(来自here的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()不返回任何消息。我错过了什么?