在我的应用程序中,我正在使用“声音效果”播放一些声音。我想知道是否有一种方法可以知道音效何时完成运行,因此第二个将在此之后开始。
最佳答案
这个老问题,但是我今天不得不做同样的事情,我尝试了基于持续时间的方法,但最终以自己的解决方案停止了,这对我来说似乎是最简单的:
1)创建静态帮助程序类,比如说麦角酸的答案中的“SoundsManager”。
2)创建一个SoundsEffectInstanses队列,然后首先播放它们(下面的代码中为“_sheduledSounds”)。
3)在每个游戏循环中更新类,并检查soundinstance是否停止:
public static void Update()
{
if (_sheduledSounds != null && _sheduledSounds.Count > 1)
{
if (_sheduledSounds.Peek().State == SoundState.Stopped)
{
_sheduledSounds.Dequeue();
_sheduledSounds.Peek().Play();
}
}
}
关于c# - 第一个完成后播放第二个SoundEffect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5758732/