I’m working on a game in Xamarin Android (C#) where we have been using FMOD (2.0.9 since this is a bit long-going project, but I think this should not matter). We are trying to access FMOD banks that are part of an Android install-time asset pack (since they are over 150 MB, you need to do this to get them to Google Play). Xamarin Android’s AssetManager.Open finds the banks just fine with
AssetManager assets = mainActivity.Assets; Stream s = assets.Open(fullsourcepath)
fullsourcepath = "banks/Master.bank". So I can for example copy the banks to a file, but this takes disk space. But when I call FMOD directly with
res = _system.loadBankFile(bank_path, LOAD_BANK_FLAGS.NORMAL, out tmpbank);
bank_path = "file:///android_asset/banks/Master.bank", I get a file not found error from FMOD.
To my understanding FMOD should supply “banks/Master.bank” to AAssetManager_open in this case, which is probably exactly the same function call as AssetManager.Open in C#. I think this may have something to do with install-time asset-packs, but I’m not entirely sure, since AssetManager.Open in Xamarin works just fine.