背景音乐可以使用SoundEffectInstance吗
本文关键字:SoundEffectInstance 可以使 背景音乐 | 更新日期: 2023-09-27 18:29:48
我想这样做的原因是能够对背景音乐进行分层。(例如,简单的歌曲开始播放,播放器触发一些东西,添加一个乐器)。我可以解决时间问题,如果有的话。
我以为我可以用MediaPlayer/Song做到这一点,但它不起作用。
我真正想找的是使用SoundEffectInstance的缺点。
附言:我不使用XACT,因为我最终会换成MonoGame。
感谢
实际上,这就是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是它的设计用途。