我需要一种在声音仍在播放时启动/停止循环的方式。我发现一起播放多种声音的最佳方式是使用XNA。所以我从包含音频片段的SoundEffect
对象开始创建了一个SoundEffectInstance
。 现在的问题是,我有一个按钮,应该将此剪辑的状态从“循环”更改为“非循环”,反之亦然。当声音仍在播放时,在Windows Phone 8上使用XNA进行音频循环播放
问题出在这里: 它引发一个异常,说明必须在第一次播放之前设置循环。 所以我认为,从“非循环”切换到“循环”时,我可以等待声音停止,然后重新创建SoundEngineInstance
,设置IsLooped = true
并使其重新开始。 这一个工程,但有一些延迟,这会让你失去你的时间,所以它是无用的。
我在寻找的是一种在播放声音时设置或取消设置循环的方式,无需任何延迟。
编辑:
我试图使用两个SoundEngineInstance
,一个环和一个不和使用该体积在它们之间简单地切换。 问题在于第一次播放后非循环播放停止,所以如果我循环播放两次然后我将它放到非循环播放状态,就没有声音播放,因为非循环播放片段已经结束了!
对此提出建议?
既然你想让声音循环,你会说它更像是一首歌,而不是'SoundEffect'吗? – ChiefTwoPencils
我有一些简短的样本,我希望它们成圈。我正在讨论'SoundEffect',因为这是我用于播放的XNA类。 – StepTNT