我有两个声音文件:
我想播放一次声音 A,然后一旦声音 A 完成,立即播放声音 B 并继续循环声音 B,直到我告诉它停止。这应该是在 RPG 中循环播放城镇音乐。
我已经尝试在代码中仅使用 SoundEffect 执行此操作,但是在声音 A 的结尾和声音 B 的开头之间存在微小但明显的差距。即使我将监视代码放在 Update() 函数中监视声音 A 的 SoundEffectInstance.State ,当声音 A 完成时,我无法完全启动声音 B 以便它是无缝的。
我更喜欢使用 SoundEffect,因为我可以加载 WMA 文件,而不是在 XACT 中使用 WAV。
最佳答案
可能的第二个选择。我想你听到的差距可能是因为第二个声音需要加载到内存中,或者初始化,或者流打开(不确定内部实现)。但如果是这种情况,我想知道你是否可以这样做:
我的假设是,由于音效 B 已经初始化,它可能会启动得更快,从而减少感知差距。很想知道你是否有机会尝试这个,以及它是否有效:-)
关于audio - 使用音效在 XNA 中使用介绍循环播放音乐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2812397/