我之所以想这样做,是为了能够为背景音乐加层。(例如,简单的歌曲开始播放,播放器触发一些东西,添加一种乐器)。我可以算出时间问题,如果有的话。
我想我可以用MediaPlayer/Song来做这件事,但这是行不通的。
我真正要寻找的是使用SoundEffectInstance的缺点。
p.s,我不使用XACT,因为我最终会改用MonoGame。
谢谢
发布于 2014-11-10 14:53:05
实际上,这就是SoundEffectInstance的作用所在!
不过,它也有局限性,取决于您的游戏运行的平台:
在Windows上,一个游戏一次最多可以有16个SoundEffectInstance实例,组合在所有加载的SoundEffect对象上。对加载的SoundEffectInstance和SoundEffect对象总数的唯一限制是可用内存。然而,用户一次只能播放16种声音效果。超过此限制播放SoundEffectInstance的尝试将失败。在Windows上,没有硬性限制。过多地使用实例会导致性能下降。在Xbox 360上,限制是300个声音效果实例加载或播放。如果需要更多,则处理旧实例。
哦,顺便说一句,我已经很久没有和XNA玩过了,但是我很确定XACT工具在它生命周期结束时已经不再必要了。我似乎还记得,您可以在Content文件夹上加载一个mp3并通过SoundEffectInstance对象播放它。
发布于 2014-11-11 03:55:03
实际上,我认为您会发现使用MediaPlayer类与歌声类相结合是播放背景音乐的推荐方法。
提供播放、暂停、恢复和停止歌曲的方法和属性。MediaPlayer还公开了洗牌、重复、音量、播放位置和可视化功能。
我认为最主要的区别是MediaPlayer可以将数据流到内存中,而不是一次加载所有数据。所以,对长时间播放音乐曲目来说,这是一条路。
而且,在MonoGame中,这些类是通过包装平台特定的类来实现的,这些类可以完成相同的任务。例如,在Android上,SoundEffectInstance使用Android SoundPool (用于声音效果),MediaPlayer使用Android MediaPlayer (用于音乐)。有关参考,请参阅这个职位论坛上的MonoGame论坛。
slygamer说: MediaPlayer用于背景音乐,SoundEffect用于声音效果,它是如何设计来使用的。
https://stackoverflow.com/questions/26846342
复制相似问题