背景音乐可以使用SoundEffectInstance吗

本文关键字:SoundEffectInstance 可以使 背景音乐 | 更新日期: 2023-09-27 18:29:48

我想这样做的原因是能够背景音乐进行分层。(例如,简单的歌曲开始播放,播放器触发一些东西,添加一个乐器)。我可以解决时间问题,如果有的话。

我以为我可以用MediaPlayer/Song做到这一点,但它不起作用。

我真正想找的是使用SoundEffectInstance的缺点。

附言:我不使用XACT,因为我最终会换成MonoGame。

感谢

背景音乐可以使用SoundEffectInstance吗

实际上,这就是SoundEffectInstance的作用!

不过它也有局限性,这取决于你的游戏运行的平台:

在Windows Phone上,一个游戏最多可以玩16次SoundEffectInstance实例,在所有加载的实例中组合SoundEffect对象。加载总数的唯一限制SoundEffectInstance和SoundEffect对象是可用内存。然而,用户一次只能播放16个声音效果。尝试播放超过此限制的SoundEffectInstance将失败。在Windows上,没有硬性限制。播放过多的实例可能导致性能下降。在Xbox 360上,音效限制为300加载或播放的实例。如果需要,请处理旧实例更多

哦,顺便说一句,我已经很久没有玩XNA了,但我很确定,在它的生命周期结束时,XACT工具已经不再必要了。我似乎记得你可以在Content文件夹上加载一个mp3,并通过SoundEffectInstance对象播放它。

实际上,我认为您会发现将MediaPlayer类与Song类结合使用是播放背景音乐的推荐方式。

提供播放、暂停、继续和停止歌曲的方法和属性。MediaPlayer还公开了洗牌、重复、音量、播放位置和可视化功能。

我认为主要区别在于MediaPlayer可以将数据流式传输到内存中,而不是一次加载所有数据。所以,对于长期播放音乐曲目来说,这是一条路。

此外,在MonoGame中,这些类是通过包装做同样事情的特定于平台的类来实现的。例如,在Android上,SoundEffectInstance使用Android SoundPool(用于音效),MediaPlayer使用Android MediaPlayer(用于音乐)。请参阅MonoGame论坛上的这篇文章以供参考。

slygamer说:背景音乐的MediaPlayer和音效的SoundEffect是它的设计用途。

相关文章:
  • 没有找到相关文章