2

考虑以下情况。

我有两个加载的 mp3 文件Mix_LoadMUS,因此获得了两个Mix_Music *. 让我们称它们为m1and m2
我使用以下方法播放第一首曲目一段时间Mix_PlayMusic

Mix_PlayMusic(m1, -1);

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

Mix_PlayMusic(m2, -1);

注意:我不免费m1,因为我想将来再次使用它。
过了一会儿,我决定再玩一次m1,使用与上面显示的完全相同的命令。

这就是问题所在。

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

从头到尾播放加载的音乐循环时间。

嗯,它做到了。几乎。问题是,紧随我停止播放的几毫秒的曲目是出于未知原因播放的。然后它开始从头开始再现音乐,仅此而已。

难道我做错了什么?看起来重用已经存在的东西Mix_Music不能正常工作。
我的意思是,音乐停止时缓冲区中的内容似乎仍然存在,因此在我Mix_PlayMusic第二次运行时播放。这是预期的行为,错误还是我只是想念的东西?


作为旁注,如果我m1m2播放时释放它,它会按预期工作,然后我稍后再加载它。

4

0 回答 0