感谢你分享的信息以及让我们注意到这个问题。
经过测试后我发现,在团结引擎里为了确保音频驱动能够正确切换为快速模式(Fast Mode),需要在 FMOD 序列化之前(即预初始化阶段)完成设置。
详细的设置方式可以看一下这个链接: Unity Integration | 11. Scripting Examples | Callback Handler
具体流程如下:
- 新建一个 CallbackHandler 脚本
using System;
using UnityEngine;
[CreateAssetMenu(menuName = "My FMOD Callback Handler")]
public class MyFMODCallbackHandler : FMODUnity.PlatformCallbackHandler
{
public override void PreInitialize(FMOD.Studio.System studioSystem, Action<FMOD.RESULT, string> reportResult)
{
FMOD.RESULT result;
FMOD.System coreSystem;
result = studioSystem.getCoreSystem(out coreSystem);
reportResult(result, "studioSystem.getCoreSystem");
// Set up studioSystem and coreSystem as desired
coreSystem.setDriver(1); //设置快速模式
}
}
-
右键点击新建一个 MyFMODCallbackHandler
-
在 FMOD Settings下的 OpenHarmony 平台设置里的 Callback Handler 一栏里,选中在上一步里新建的 MyFMODCallbackHandler
在这之后快速模式(Fast Mode)应该便可以在 FMOD 序列化之前设置成功,并且 Buffer Length 也可以设置成更合理的 512,使延迟大幅度减小。
希望这能帮到你,如果问题依然存在,还请告诉我。