考虑以下情况。
我有两个加载的 mp3 文件Mix_LoadMUS
,因此获得了两个Mix_Music *
. 让我们称它们为m1
and m2
。
我使用以下方法播放第一首曲目一段时间Mix_PlayMusic
:
Mix_PlayMusic(m1, -1);
然后我(让我说)使用第二个命令将第一首曲目替换为第二首曲目:
Mix_PlayMusic(m2, -1);
注意:我不免费m1
,因为我想将来再次使用它。
过了一会儿,我决定再玩一次m1
,使用与上面显示的完全相同的命令。
这就是问题所在。
当我m1
第二次玩时,我希望它从文档中的 0 开始:
从头到尾播放加载的音乐循环时间。
嗯,它做到了。几乎。问题是,紧随我停止播放的几毫秒的曲目是出于未知原因播放的。然后它开始从头开始再现音乐,仅此而已。
难道我做错了什么?看起来重用已经存在的东西Mix_Music
不能正常工作。
我的意思是,音乐停止时缓冲区中的内容似乎仍然存在,因此在我Mix_PlayMusic
第二次运行时播放。这是预期的行为,错误还是我只是想念的东西?
作为旁注,如果我m1
在m2
播放时释放它,它会按预期工作,然后我稍后再加载它。