(Для разработчиков) Как правильно поддерживать эквализацию в плеере

Требуются буквально 2 строчки кода:

  • Отправить интент AudioEffect.ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION с идентификатором audio session id при запуске воспроизведения
  • Отправить интент AudioEffect.ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION по окончании воспроизведения

Дополнительно:

  • не меняйте идентификатор audio session id между воспроизводимыми треками, списками воспроизведения и т. д. Сохраняйте один идентификатор для каждого сеанса воспроизведения (на время существования службы воспроизведения)
    • это уменьшает возможные артефакты при запуске сеанса, так как эффекты требуют некоторого времени для настройки и применения.
    • также этот подход снижает использование ресурсов, поскольку не требуется перенастройка эффектов.
  • не используйте несколько идентификаторов audio session id, даже если вы используете несколько MediaPlayers / AudioTracks (например, для кроссфейда)
    • это также снижает использование ресурсов, так как не требуется несколько эффектов для одного плеера

Чтобы реализовать приведенные выше советы, получите идентификатор audio session id один раз из первого MediaPlayer / AudioTrack и повторно используйте его для следующих созданных MediaPlayers / AudioTracks.