XNA Music实时混音

时间:2012-04-14 11:17:56

标签: c# xna xna-4.0 mixing background-music

我创建了一个“格式”来存储音乐片段(前奏部分,重复部分,结尾部分)和这些片段的时间信息(偏移,得分长度),这样我就可以实时混合它,就像它是一首音乐,同时无限重复重复部分(可选)。这样,段可以存储下一个段播放的衰减,而前一个段完成。 (我在Java中为此创建了一个播放器,并使用了Clip类。)

我想要这种格式,所以我可以提供有限长度的音乐(用于自动点唱机功能),同时我在游戏中播放无限长的音乐。

然而,当我想在XNA中编写一个管理这种“格式”的类时,我注意到,没有明显的方法可以同时播放“歌曲”/重叠。我怎么能这样做/什么是最佳实践,而不是离开XNA框架? (我不想创建无限的播放列表。)

1 个答案:

答案 0 :(得分:2)

您可能想要查看XACT。它应该已经安装了您的XNA副本。 XACT是试听软件,可让您在游戏中为音频设置一些逻辑。它与XNA基本无缝集成。我想如果你研究一下XACT的一些高级功能,你可以让它做你需要的。它非常强大,但有学习曲线。

在XACT之外你会有更难的时间。在vanilla C#/ XNA代码中,我想不出任何办法。 XACT旨在弥补这个缺点,所以你应该使用它。

至于XACT的未来,我相信它已经死亡/死亡(如将来可能不会支持)。至少DirectX版本是。我不认为他们会完全抛弃这个想法,因为正如我所说的那样 - 我发现在这种控制水平下,我发现在XNA中管理音频的方式并不相同。