发出多次重复使用Mix_Music的问题

时间:2018-04-14 21:13:45

标签: c++ sdl-2 sdl-mixer

考虑以下情况。

我有两个用Mix_LoadMUS加载的mp3文件,因此获得了Mix_Music *的两个实例。我们称他们为m1m2 我使用Mix_PlayMusic播放了第一首曲目:

Mix_PlayMusic(m1, -1);

然后我(让我说)使用第二个命令将第一个轨道替换为第二个轨道:

Mix_PlayMusic(m2, -1);

注意:我不会免费m1,因为我希望将来再次使用它。
过了一会儿,我决定再次使用上面显示的相同命令再次播放m1

这是问题所在。

当我第二次玩m1时,我希望它从文档中的0开始:

  

从开始到结束播放加载的音乐循环时间。

嗯,它做到了。几乎。问题是,在我停止它之后的几个毫秒的轨道被播放的原因不明。然后它开始从一开始就重现音乐。

我做错了吗?看起来重复使用已经存在的Mix_Music无法正常工作。
我的意思是,当音乐停止时缓冲区中的内容仍然存在,因此当我第二次运行Mix_PlayMusic时播放。这是预期的行为,错误还是我错过的东西?

作为旁注,如果我在播放m1时免费m2,那么它会按预期工作,然后我会在以后重新加载。

0 个答案:

没有答案