XNA音乐实时混音

本文关键字:实时 音乐 XNA | 更新日期: 2023-09-27 18:31:11

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

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

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

XNA音乐实时混音

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

在XACT之外,您将面临更困难的时期。我想不出任何方法可以在普通 C#/XNA 代码中做到这一点。不过,XACT旨在弥补这一缺点,因此您应该使用它。

至于XACT的未来,我相信它已经死了/垂死了(就像在,将来可能不会得到支持)。至少DirectX版本是这样。不过,我不认为他们会完全放弃这个想法,因为就像我说的 - 我真的没有发现一种类似的方法来管理XNA中的音频,具有这种级别的控制。