CRIWARE Unity Plugin Manual
Last Updated: 2024-07-12
SonicSYNC
什么是SonicSYNC
SonicSYNC功能可以最大限度的减少发声延迟。
在CRI ADX內部让音频输出和各平台音频驱动程序的缓冲区更新同步执行,省去不必要的内部缓冲。
与过去相比,使用SonicSYNC最大会有约50%的改善。
使用方法
请在 CriWareInitializer 的各平台的初始化配置中启用“Enable SonicSYNC”复选框。
注意事项
关于平台支持
目前SonicSYNC仅在部分平台上可用。
对于现在的非支持平台,请等待未来更新。
从过去方式的迁移
由于减少了发声延迟,音画同步上会出现时间差。
因此,需要根据新的延迟值再次调整各种计时。
特别是容易受发声延迟影响的音乐游戏,我们建议重新调整画面渲染和操作判定。
此外,发声延迟的表现也不是恒定的。
根据不同平台,使用后台音频播放或蓝牙连接时,播放延迟可能会因操作系统而增加。
详细信息请参阅
各平台的特别说明
。
关于有让声音断断续续风险的处理
高负荷总线效果的使用
以下效果的处理负荷比较大,发生声音断续的可能性较高。
移调器
混响
I3DL2混响
耳机虚拟环绕
除移调器以外,这些效果器单独使用不会导致声音断续。
但是,对于效果器的组合使用则需要注意。
此外,对于上述以外的效果,如果同时大量使用,声音断续的风险也会增加。
我们正在研究如何减少移调器的负载。
运行库内部包含互斥锁的处理的执行
执行以下处理时,会进行与OS的音频输出线程的互斥处理,处理时间较长时可能会导致声音断续。
Voice池的创建和销毁
Mana Player的创建和销毁
ACB和AWB的加载和释放
DSP总线设置的挂载和卸载
为避免可感知的杂音,建议在静音时进行上述操作。
查找声音断续的原因
启用SonicSYNC时,即使声音断断续续也不会像传统方法一样发出警告。
这是由于其原因不是Atom库内部的声音缓冲区耗尽,而是因为音频输出线程无法正常定期运行。
如果声音的断断续续问题严重,可以使用以下API测算播放所使用ASR rack的负载。
CriAtomExAsrRack.ResetPerformanceMonitor
CriAtomExAsrRack.ResetPerformanceMonitorByRackId
CriAtomExAsrRack.GetPerformanceInfo
CriAtomExAsrRack.GetPerformanceInfoByRackId
使用以上API时,可以获取音频处理的执行间隔。
如果处理时间的平均值太大,可能是由于存在很多效果处理或者设备本身的性能不足。
声音播放延迟因设备而异,但如果超过 2000微秒,声音断断续续问题的风险会很高。
如果“处理间隔的最大值”经常大大超过“处理间隔的平均值”,可能是因为音频输出线程的执行受到了阻碍。
音频线程受阻的原因可能是可进行处理的线程不足,或是受到了后台处理的影响。
要更详细地确定原因,请使用各平台开发环境所提供的、可用于检查线程运行状态的Profiler。
使用Profiler可以查看具体的后台处理状态和线程的阻塞状态。
遇到特定设备上无论负载如何都会发生的问题时,请联系技术支持。
各平台的特别说明
各平台上的实际性能及注意事项请参考以下页面。
关于SonicSYNC的特别说明(Android)
关于SonicSYNC的特别说明(iOS)
Copyright (c) CRI Middleware Co., Ltd. 1.8.10