我正在使用 XNA 的SoundEffect
类在游戏项目中播放声音。虽然直接 ing 效果的内存管理SoundEffect.Play()
对我来说相对清晰(SoundEffectInstances
在内部创建并添加到列表中,并且在声音停止时它们的内存被删除),但我想知道在直接创建时建议做什么,SoundEffectInstances
例如控制音频播放(音量等)之后instance.Play()
。
目前,对于那些我需要在创建后控制的音效,我使用一个特殊的类,该类在其构造函数中通过以下方式创建一个新实例:
instance = LoadEffect(indexInSoundLibrary).CreateInstance();
在该类调用的析构函数中:
instance.Dispose();
总之,我使用了大约 400 个声音文件(只是它们的文件名)的集合,这些文件在需要时动态加载。在内存中保留一些是否有意义(例如,对于通常通过创建一个(而不是直接使用)SoundEffectInstances
来播放的集合中的那些音频文件?SoundEffectInstance
SoundEffect.Play()
SoundEffectInstances
一次可以在内存中保存多少个是否有任何限制?
只是为了获得更多信息,我使用了多个 ContentManager 和经常Unload
不使用的声音。