XNA中音频播放的内存安全方式

时间:2016-07-04 16:03:09

标签: audio memory xna soundeffect soundeffectinstance

我正在使用XNA的SoundEffect课程来播放游戏项目中的声音。虽然直接SoundEffect.Play()效果的内存管理对我来说比较清楚(SoundEffectInstances在内部创建并添加到列表中,并且在声音停止时删除了它们的内存),我想知道建议的是什么直接创建SoundEffectInstances时要做的事情在instance.Play()之后控制音频播放(音量等)。

目前,对于我需要在创建后控制的声音效果,我使用一个特殊的类,在其构造器中通过以下方式创建一个新实例:

instance = LoadEffect(indexInSoundLibrary).CreateInstance();

在该类的析构函数中调用:

instance.Dispose();

总之,我使用了大约400个声音文件(只是他们的文件名)的集合,它们会在需要时动态加载。将大量SoundEffectInstances保留在内存中是否有意义(例如,通常通过创建SoundEffectInstance(而不是直接使用SoundEffect.Play())来播放集合中的那些音频文件?

一次可以在内存中保留多少SoundEffectInstances是否存在任何限制?

仅为了解更多信息,我使用多个ContentManagers并定期Unload未使用的声音。

0 个答案:

没有答案