gpt4 book ai didi

c# - SoundEffect.CreateInstance是否每次都从文件加载?

转载 作者:行者123 更新时间:2023-12-03 00:10:50 25 4
gpt4 key购买 nike

这一直困扰着我。如果我通过SoundEffectInstance创建一个SoundEffect.CreateInstance(),则意味着在完成后将其丢弃。据我所知,SoundEffect.CreateInstance()不使用ContentManager

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

最佳答案

这是一个实现细节。您不确定,这并不重要,平台之间可能会有所不同,并且将来可能会发生变化。

但是,您可以进行有根据的猜测:首先,SoundEffectInstance存在,并且您将声音文件加载到SoundEffect中这一事实表明SoundEffect可能负责将声音效果保存在内存中。 SoundEffect.FromStream和基于缓冲区的SoundEffect构造函数的存在强烈表明SoundEffect必须具有在内存中保留声音缓冲区的机制。因此,可以很安全地假定从文件加载SoundEffect时,它使用相同的机制。

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

与往常一样,如果性能真的很重要,则应该对其进行评估。

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

关于c# - SoundEffect.CreateInstance是否每次都从文件加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6351421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com