2

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

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

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

4

1 回答 1

2

您可能想研究XACT。它应该随您的 XNA 副本一起安装。XACT 是一款试听软件,可让您为游戏中的音频设置一些逻辑。它与 XNA 基本无缝集成。我认为,如果您研究 XACT 的一些高级功能,您也许可以让它完成您需要的工作。它非常强大,但有一个学习曲线。

在 XACT 之外,您会遇到更困难的情况。我想不出任何办法在香草 C#/XNA 代码中做到这一点。不过,XACT 旨在弥补这个缺点,因此您应该使用它。

至于 XACT 的未来,我相信它已经死了(就像,将来可能不会被支持)。至少 DirectX 版本是。不过,我不认为他们会完全放弃这个想法,因为就像我说的那样——在 XNA 中以这种级别的控制来管理音频确实没有可比的方法。

于 2012-04-16T20:13:34.053 回答