Android: Прикрепить эффект к звуку SoundPool? - PullRequest
0 голосов
/ 19 октября 2018

У меня есть приложение для 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

(и в любом случае я понимаю, что применение эффектов к нулевому идентификатору сеанса не рекомендуется).

...