首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否每次都从文件加载SoundEffect.CreateInstance?

是否每次都从文件加载SoundEffect.CreateInstance?
EN

Stack Overflow用户
提问于 2011-06-15 07:35:54
回答 1查看 513关注 0票数 0

这是一直困扰着我的事情。如果我通过SoundEffect.CreateInstance()创建一个SoundEffectInstance,我应该在使用完它后将其处理掉。据我所知,SoundEffect.CreateInstance()没有使用ContentManager

那么它是从文件加载还是在内存中保留一个副本?从文件加载显然会非常慢:-/

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-15 10:55:38

它是一个实现细节。你不能确定,这并不重要,它可能在不同的平台上有所不同,并且在未来可能会发生变化。

然而,你可以做出一个有根据的猜测:首先,SoundEffectInstance的存在,以及你将声音文件加载到SoundEffect中,表明SoundEffect可能负责将声音效果保存在内存中。SoundEffect.FromStream和基于缓冲区的SoundEffect构造函数的存在强烈表明,SoundEffect必须有一种在内存中保留声音缓冲区的机制。因此,可以相当安全地假设,当您从文件加载SoundEffect时,它使用相同的机制。

如果它真的很重要,您可以在加载SoundEffect之后删除或修改声音文件,然后创建一个实例来测试它。

一如既往,如果性能真的很重要,您应该对其进行测量。

当然,创建SoundEffectInstance确实会分配资源(音频、语音、托管内存,也可能是非托管内存)。因此,如果可以避免的话,您不应该定期创建它-例如通过池化和重用实例。当您使用SoundEffect.Play时,SoundEffect将在内部为您管理一个SoundEffectInstance对象池。

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

https://stackoverflow.com/questions/6351421

复制
相关文章

相似问题

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