在声音仍在播放时,在Windows Phone 8上使用XNA进行音频循环

Ste*_*TNT 11 c# audio xna visual-studio-2012 windows-phone-8

我需要一种在声音仍在播放时启动/停止循环的方法.我发现一起播放多种声音的最佳方法是使用XNA.所以我SoundEffectInstanceSoundEffect包含音频剪辑的对象开始创建.现在问题是我有一个按钮,应该将此剪辑的状态从"循环"更改为"非循环",反之亦然.

这是问题:它抛出一个异常,说必须在第一次播放之前设置循环.所以我认为,在从"非循环"切换到"循环"时,我可以等待声音停止,然后重新创建SoundEngineInstance,设置IsLooped = true并再次启动.这个有效,但有一些延迟,这会让你失去你的时间,所以这是无用的.

我正在寻找的是一种在播放声音时设置或取消设置循环的方法,没有任何延迟.

编辑:

我尝试使用两个SoundEngineInstance,一个循环,一个不循环,只需使用音量切换它们.问题是非循环播放只是在第一次播放后停止,所以如果我将它循环两次然后我将其置于非循环状态,则不播放声音,因为非循环剪辑已经结束!

建议?

小智 2

我遇到了同样的问题,我使用了两个具有相同音频剪辑的实例来解决它,一个有循环,一个没有循环。我在两者之间切换。这可能不是最好的解决方案,但它对我有用。