首页 文章

当使用 XNA/XACT 结束另一个声音时,如何立即播放声音?

提问于
浏览
1

这个问题与音频设计师和程序员的世界接壤。虽然这个问题可能必须由音频设计师的某个领域部分回答,但对于程序员来说肯定是个问题。在我们的项目中,我们想要在游戏计时器超过一分钟时循环播放声音(背景音乐)。当这个时间被击中时,我们希望停止播放音乐,然后立即继续结束片段。我一直在研究 XACT,它似乎支持不同的事件。遗憾的是文档缺乏,作为程序员,应用程序对我来说有些陌生。

我希望做的是沿着这些方向(不同的方法):

  • 当音乐停止时,我想要将事件联系起来立即播放另一个声音

  • 当音乐中触发标记时,我想立即播放另一个声音

  • 我还想在我的应用程序中知道其中一些事件发生时

问题是,当另一个声音开始时我无法找到任何 auto-play 声音的机制,而且我找不到将 XACT 项目中发生的事件与 C#联系起来的方法。

如果无法做到这一点(i.e.XACT/XNA 缺乏对这些操作的支持),请收集有关如何以最小的 cross-sound 时间错误解决此问题的想法。我最好能够通过调用 XNA 在 C#中尽可能多地控制它。

1 回答

  • 4

    我想我现在已经解决了

    这就是我做到的。

    • XACT中停止后,选择要更改声音的Cue

    • 播放列表类型设置为交互

    • 打开提示转换

    • 选择按目的地查看

    • 在树视图中可见的**(停止)节点中选择Cue**。

    • 在树视图右侧的Transition Properties中,对于Source 和 Destination

    • Source设置为End of Loop

    • Destiantion设为开始

    • 在树视图右侧的过渡属性中,对于过渡

    • 转换类型设置为直接并发转换

    • 在循环声音完成循环后,将过渡声设置为您想要播放的声音

    关闭窗口并通过播放 Cue 进行测试。还要测试停止它作为编写,看看行为是否符合你的期望。


    履行

    在代码中,停止Cue** As Authored **以获得此行为.立即停止提示而不播放声音 outro。我希望这可以帮助将来可能遇到这个问题的其他人。问题和答案并不是我最初想的那么多代码导向。此外,这适用于 XNA 2.0. 我不知道在 XNA 3.0 中是否会有其他选项来控制这种行为。

相关问题