У меня есть приложение для 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
(и в любом случае я понимаю, что применение эффектов к нулевому идентификатору сеанса не рекомендуется).