I can’t find any reports of this crash in Android 13 or 14. Looking through the repo, it appears that the Android 13 fix was applied to AudioStream, which would resolve the AudioStream::MyPlayerBase::playerSetVolume crash case. I see a recent change in the repo to resolve a similar looking crash in TrackPlayerBasehttps://android-review.googlesource.com/c/platform/frameworks/av/+/2909337
So this doesn’t appear to be an FMOD issue, and I would expect this crash case to be resolved in Android 15.
We solved this, it was only an issue on Xiaomi devices Android 11 (but we had a loooot of crashes reported). We changed the Audio output for these devices to FMOD.OUTPUTTYPE.OPENSL. Before we had automatic audio output selection, so it decided based on android version to take Open SL, AudioTrack or AAudio. And now we just override the automatic selection for the offending devices. So the issue was related to Xiaomi changing android OS or screwing up driver code… The code I provided was added to FMOD.AudioManager.Initialize() method. You can maybe expect a little more latency, since AAudio that was choosen before is supposed to work with less latency. Otherwise all seems well.
#if UNITY_ANDROID
var deviceModel = SystemInfo.deviceModel;
if (!string.IsNullOrEmpty(deviceModel) && deviceModel.Contains("M2003J15SC") || deviceModel.Contains("M2004J19C") || deviceModel.Contains("M2101K7BG") || deviceModel.Contains("21121119SG") || deviceModel.Contains("M2101K7BL"))
{
using var buildVersion = new AndroidJavaClass("android.os.Build$VERSION");
var sdkVersion = buildVersion.GetStatic<int>("SDK_INT");
if (sdkVersion == 31)
{
outputType = FMOD.OUTPUTTYPE.OPENSL;
RuntimeUtils.DebugLogWarning($"Disabling sound on, because of bad drivers and crashes on {deviceModel}");
}
}
#endif