Audio 你能知道XNA SoundEffects当前是否正在播放声音实例吗?

Audio 你能知道XNA SoundEffects当前是否正在播放声音实例吗?,audio,xna,xna-4.0,soundeffect,soundeffectinstance,Audio,Xna,Xna 4.0,Soundeffect,Soundeffectinstance,基本上,我想获得XNA4.0中给定SoundEffects实例的状态。有没有办法知道声音当前正在播放还是已停止?是的,这是可能的,但您需要使用SoundEffectInstance。您可以使用SoundEffect.CreateInstance创建它。请记住,SoundEffectInstance最初创建为stopped 该类具有SoundEffectInstance.State属性,可用于获取声音效果的当前状态:播放、暂停或停止。 参考。如果没有内置方法,您可以简单地使用您自己创建的布尔检查。

基本上,我想获得XNA4.0中给定SoundEffects实例的状态。有没有办法知道声音当前正在播放还是已停止?

是的,这是可能的,但您需要使用
SoundEffectInstance
。您可以使用
SoundEffect.CreateInstance
创建它。请记住,
SoundEffectInstance
最初创建为stopped

该类具有
SoundEffectInstance.State
属性,可用于获取声音效果的当前状态:播放、暂停或停止。

参考。

如果没有内置方法,您可以简单地使用您自己创建的布尔检查。但是有了这样的标志,我只能知道声音是否开始(播放),而不能知道声音何时停止(在声音持续时间之后结束)…您也知道声音文件的持续时间吗?只需设置开始时间,并检查所经过的时间是否大于文件的持续时间。是的,这应该有效。你可以添加这个作为答案吗?可能有一个内置函数为你做这项工作,所以让我们等待其他答案。是的,“if(instance.State==SoundState.Playing)”工作得很好。