当使用XNA / XACT结束另一种声音时,如何立即播放声音?
时间:2020-03-06 14:31:53 来源:igfitidea点击:
这个问题介于音频设计师和程序员之间。虽然这个问题可能必须由音频设计师的领域来部分回答,但是对于程序员来说,这肯定是一个问题。在我们的项目中,我们想在游戏计时器还剩一分钟以上时循环播放声音(背景音乐)。当这个时间到来时,我们希望停止创作的音乐,然后立即继续结束片段。我一直在研究XACT,它似乎支持不同的事件。不幸的是,缺少文档,并且作为程序员我对应用程序有些陌生。
我要做的是遵循以下思路(不同的方法):
- 音乐停止播放后,我想安排一个活动来立即播放另一种声音
- 当音乐中触发标记时,我想立即播放另一种声音
- 我还想知道在我的应用程序中何时发生其中一些事件
问题在于,当另一种声音开始时,我还找不到任何自动播放声音的机制,而且我找不到一种将XACT项目中的事件与C#联系起来的方法。
如果无法做到这一点(即XACT / XNA不支持这些操作),请收集想法,以最小的跨音时间误差解决此问题。最好,我可以使用对XNA的调用在C中尽可能多地控制这一点。
解决方案
我想我已经解决了
这是我的方法。
- 在XACT中选择停止后要更改声音的提示。
- 将播放列表类型设置为互动。
- 打开提示过渡。
- 选择按目的地查看。
- 在树视图中可见的(停止)节点中选择提示。
- 将"目标"设置为"开始"。
- 在循环声音完成循环后,将"过渡声音"设置为我们想要播放的声音。
关闭窗口并通过播放提示进行测试。还要测试以按授权停止它,以查看该行为是否满足期望。
执行
在代码中,按提示停止提示以获取此行为。立即停止提示而无需播放声音。我希望这对将来可能会遇到此问题的其他人有所帮助。问题与答案并不像我最初想的那样面向代码。同样,这适用于XNA 2.0。我不知道在XNA 3.0+中是否还有其他选项可以控制这种行为。