Android: Прикрепить эффект к звуку SoundPool?
У меня есть приложение для Android, которое использует android.media.SoundPool для воспроизведения звуковых сигналов для пользователя. Это работает, как и ожидалось, но я хотел бы иметь возможность добавлять эффекты к воспроизведению (через подклассы android.media.audiofx.AudioEffect).
Я понимаю, как звуковые эффекты работают (например, с MediaPlayer), но я не понимаю, как использовать их со SoundPool. В частности, я не уверен, что использовать для идентификатора сессии. (Я использую Xamarin Android из-за... причин. Так что мой пример выглядит странно - но я счастлив адаптировать нативные ответы Java или Kotlin!)
int session = ???; // What goes here?
var fx = new LoudnessEnhancer(session);
fx.SetTargetGain(2400);
fx.SetEnabled(true);
Pool.Play(soundID, 1.0F, 1.0F, 1, 0, 1.00F);
Я попытался использовать идентификатор сеанса 0, но (на моем WT6000 под управлением Android 7.1.1) происходит сбой в ctor LoudnessEnhancer:
Java.Lang.RuntimeException: Cannot initialize effect engine for type: fe3199be-aed0-413f-87bb-11260eb63cf1 Error: -3
(и в любом случае, я понимаю, что применение эффектов к нулевому идентификатору сеанса не рекомендуется).