首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对背景音乐使用SoundEffectInstance是可以接受的吗?

对背景音乐使用SoundEffectInstance是可以接受的吗?
EN

Stack Overflow用户
提问于 2014-11-10 14:45:47
回答 2查看 609关注 0票数 1

我之所以想这样做,是为了能够为背景音乐加层。(例如,简单的歌曲开始播放,播放器触发一些东西,添加一种乐器)。我可以算出时间问题,如果有的话。

我想我可以用MediaPlayer/Song来做这件事,但这是行不通的。

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

p.s,我不使用XACT,因为我最终会改用MonoGame。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-10 14:53:05

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

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

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

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

票数 2
EN

Stack Overflow用户

发布于 2014-11-11 03:55:03

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

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

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

而且,在MonoGame中,这些类是通过包装平台特定的类来实现的,这些类可以完成相同的任务。例如,在Android上,SoundEffectInstance使用Android SoundPool (用于声音效果),MediaPlayer使用Android MediaPlayer (用于音乐)。有关参考,请参阅这个职位论坛上的MonoGame论坛。

slygamer说: MediaPlayer用于背景音乐,SoundEffect用于声音效果,它是如何设计来使用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26846342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档