fmod在鸿蒙设备上播放3D音效是杂音

fmod版本2.03
团结引擎1.4.2(unity 2022.3.48)
经过测试在鸿蒙设备上播放3D音效是杂音,怎么解决?

你好,感谢你提供的版本信息。

可以麻烦你提供一下更多信息以及具体的复现过程么?我这边使用相同的版本似乎没法复现你的问题,你是用Event Emitter播放声音还是通过代码播放声音呢?如果是代码的话我能看一下播放声音部分的代码么?

还有就是不知能否看看你在FMOD Setting里面的平台设定截图?


通过代码播放声音,代码截图

非常感谢你分享的代码!我这边尝试使用FMOD 2.03.07 以及 1.4.2的团结引擎,但还是没有办法成功复现你的问题。

不知可否麻烦你上传有问题的项目或者一个简单的复现项目到你的 FMOD Profiler 上让我进行调查呢?

你好,

很遗憾,我这边似乎还是没办法成功复现,所以想来跟进一下看看,不知你那边是否运气好有任何这杂音问题的进展,或者有更多信息可以分享呢?

另外就是不知可否麻烦你在FMOD Settings里将Loggin Level设置成Log,以及勾选上Enable API Error Logging,然后分享给我们完整的日志呢?

这应该能帮助我们进行调查和定位潜在的问题,非常感谢!

20250522_171329.log (1.3 MB)
日志在这里
感谢帮忙查找问题

1 Like

非常感谢你提供的日志,但是我这边还是没找到办法复现出3d音效的杂音问题。

请问你方便分享一些截图,让我看看在FMOD Sutdio里面所播放的那个3d事件是具体如何设置的么?

以及可以麻烦你在团结引擎里点击 FMOD->About Integration,截个具体版本号的图给我么?非常感谢。


fmod版本号是2.03.06

1 Like

感谢你提供的版本信息!

我在尝试复现杂音问题时暂未成功,但在使用 2.03.06 版本时确实遇到了一个 bank 路径读取的错误,这会导致事件无法正常加载,最终也就无法发声。我怀疑你遇到的“杂音”现象,可能其实是由于事件未正确加载,从而播放的是错误或无效的内容所致。

这个 bank 路径读取的问题已经在 FMOD 2.03.07 中修复了,不知道是否可以麻烦你升级到该版本尝试一下?看看升级后问题是否依然存在。

如果在 2.03.07 中仍然有杂音,能否麻烦你查看一下 DevEco Studio 的控制台里是否有与 FMOD 相关的错误或警告信息?这些信息可能有助于我们进一步定位问题。

好的,我升级一下试试
感谢回复

1 Like

你好
我这边测出来是runtimemanager,里面加入3D参数会导致我们技能音效是杂音,注释代码就不会有问题


Demo我还在做

好的,非常感谢你分享的信息!

我可能确实需要等你上传复现Demo来进行进一步调查了。

以下是我尝试模仿你的代码测试用的脚本, 但是还是没有办法在我们的Mate 60 Pro上复现3D技能杂音问题:

using UnityEngine;
using FMODUnity;
using FMOD.Studio;

public class NoiseTest : MonoBehaviour
{
    [SerializeField] private string eventGuidString;
    [SerializeField] private bool playAsOneShot = true;
    [SerializeField] private bool is3D = true;
    [SerializeField] private float volumeRatio = 1.0f;

    void Start()
    {
        PlayTargetSound(eventGuidString, transform.position, playAsOneShot, is3D, volumeRatio);
    }

    public void PlayTargetSound(string guid, Vector3 position, bool oneShot, bool is3D, float volumeRatio)
    {

        EventDescription eventDesc = RuntimeManager.GetEventDescription(guid);
        if (!eventDesc.isValid())
        {
#if UNITY_EDITOR
            string path;
            eventDesc.getPath(out path);
            Debug.LogErrorFormat("PlayOneShot({0}) failed, sound not set correct OneShot info in FMOD Studio Editor, path: {1}", oneShot, path);
#endif
            return;
        }

        EventInstance newInstance;
        eventDesc.createInstance(out newInstance);

        if (!newInstance.isValid())
            return;

        if (is3D)
        {
            var attributes = RuntimeUtils.To3DAttributes(position);
            newInstance.set3DAttributes(attributes);
        }

        newInstance.getVolume(out float volume, out float finalVolume);
        newInstance.setVolume(volume * volumeRatio);

        newInstance.start();

        newInstance.release();

    }
}

不知道出现杂音的时候,在DevEco Studio的日志里面能否追踪到类似 与 [FMOD] set3DAttributes 相关的报错或警告呢?