Version: 2022.3

AudioSettings.GetDSPBufferSize

切换到手册
public static void GetDSPBufferSize (out int bufferLength, out int numBuffers);

参数

bufferLength 环形缓冲区中每个缓冲区的长度。
numBuffers 缓冲区数。

描述

获取混合器的缓冲区大小,以样本数为单位。

对于移动设备(iOS 设备和 Android),也可以从菜单 Audio Settings > Mobile DSP Buffer size 进行设置。 软件混合器将声音混合到一个环形缓冲区。该环形缓冲区的大小在此确定。它在每个 bufferlength 数量的样本中混合一个声音数据块,共有 numbuffers 个这种声音数据块,它们构成整个环形缓冲区。 调整这些值可能会导致极低的延迟性能(较小的值)或更高的声音输出稳定性(较大的值)。 警告!通常情况下,请勿更改 buffersize。减小粒度只会增加 CPU 使用率(缓存未命中和 DSP 网络开销)。 增大粒度会影响命令更新的频率,例如音量/音高/平移变化。 高于 20ms 的任何声响都会变得明显,声音参数更改将变得突兀、不平滑。 默认情况下,Unity 选择最佳大小来提供最好的稳定性,具体取决于输出类型,以及是否为模拟驱动程序(例如,在 NT 上使用 waveOut 模拟 DirectSound)。 若非实有必要,不建议更改该值。否则,您可能会获得比 Unity 选择的默认设置更差的性能。 从版本 5.0 开始,不再支持通过脚本设置 DSP 缓冲区大小。要进行该项设置,必须在项目设置的 Audio 部分中进行。