FMOD and Webgl BankLoadException

I am trying to get FMOD to Work with Webgl. It works for a regular windows build, and when I build and run webgl locally it also works. But as soon as I host it on Itch or another website domain. I get this error

BankLoadException: [FMOD] Could not load bank ‘https://v6p9d9t4.ssl.hwcdn.net/html/2742153/StreamingAssets/Build/Desktop/Master.strings.bank’ : ERR_UNSUPPORTED : A command issued was not supported by this object. Possibly a plugin without certain callbacks specified.
at FMODUnity.RuntimeManager.loadedBankRegister (FMODUnity.RuntimeManager+LoadedBank loadedBank, System.String bankPath, System.String bankName, System.Boolean loadSamples, FMOD.RESULT loadResult) [0x00000] in <00000000000000000000000000000000>:0

(Filename: currently not available on il2cpp Line: -1)

And here is a link to check it out.

Hi
That sort of error is typical if your studio project has some effects that aren’t typically supported in a stripped release webgl build of fmod (the release build is trying to reduce its size as much as it can).

Older versions removed several things from the library like less used resample modes, codecs, DSPs like envelope follower/loudness meter/convolution reverb. More recent builds put convolution reverb back in.

I can only assume a mix of different libraries for the local/hosted difference. It should fail similarly in local mode. If you use the logging version locally, it will support everything, the non logging version has stuff stripped out.

What FMOD version are you using? (to determine if the version would be responsible).

Brett

Hi! And thank you for the reply. I am using fmod 2.01.04. and unity 2020.1.6f. I have also used the non logging version plugin and the same error occurs.

do you mean logging? The ‘non logging’ version is the one that has stuff stripped out.

Actually Master.strings.bank is just string metadata so it shouldnt be relying on any effects.
We have plenty of instances of stuff being hosted remotely, i’m not sure that will be relevant unless you didn’t deploy everything correctly?

At this point I would try to set everything to logging and see what comes out of the log.

I am referring to the plugins libfmodstudiounityplugin.bc and libfmodstudiounitypluginL.bc. Is there something else for logging? Is it the logging level in fmod studio settings that needs to be set to none to strip everything out?

I guess the real error is it [ERR] RuntimeBankModel::openFile : Failed to open file ‘https://v6p9d9t4.ssl.hwcdn.net/html/2746266/StreamingAssets/Build/Desktop/Master.strings.bank

Hi ,
I can see the reason for the fmod_err_unsupported error now.
It is trying to load that URL as if it was a netstream (ie shoutcast/icecast etc) and failing.

It looks like an error was introduced into the unity wrapper code which you could edit yourself as a workaround if you like. We’ll patch this for the next release.

If you look at /assets/plugins/fmod/src/Runtime/RuntimeManager.cs, line 811

#elif UNITY_WEBGL && !UNITY_EDITOR
                if (bankPath.Contains("http://"))
                {
                    Instance.StartCoroutine(Instance.loadFromWeb(bankPath, bankName, loadSamples));
                }

Should be

#elif UNITY_WEBGL && !UNITY_EDITOR
                if (true)
                {
                    Instance.StartCoroutine(Instance.loadFromWeb(bankPath, bankName, loadSamples));
                }

so it catches https and http

Yep that was it! Thank you so much!