sdl_mixer1.2和2.x的一个处理区别导致的音量变小的bug

很久以前就发现使用sdl_mixer播放的声音音量相比SDL变小了,以前sdl_mixer 1.2的时候没有这个问题,这个问题困扰我很久,我一直以为是sdl_mixer2.x的regression bug。

5.1放假正好有空研究了一下sdl_mixer的代码,终于发现问题的原因了,现在我们注册一个effect,不会直接修改输出的声音流,而是跟原始的声音做一个resample,因为原始声音都是0,所以mix后音量就变小了。看了一下代码,要想直接改原始的声音流,可以通过注册一个music effect来实现,改了以后测试了一下,声音确实变大了。