Планирование нескольких звуков в Android фоновом сервисе - PullRequest
0 голосов
/ 17 марта 2020

Я хочу разработать фоновый сервис для непрофессионального приложения, которое я создаю. Я справляюсь с Android, но я не профессиональный разработчик, так что извините, если что-то из этого наивно:)

Сервис - это стандартный сервис воспроизведения музыки c, использующий экземпляр MediaPlayer для воспроизведения музыки c (SoundPool не является опцией, учитывая длительность некоторых звуков), но имеет небольшое усложнение: он должен иметь возможность воспроизводить набор звуков, запланированных согласно некоторому правилу , но он не будет знать заранее, сколько и с каким планированием.

Планирование может представлять собой набор

  • воспроизведения звука один раз
  • воспроизведения Звук в непрерывном режиме l oop
  • воспроизводит звук конечное число раз
  • любой из вышеперечисленных с задержкой на старте
  • et c. ..

Я изучаю варианты наиболее "1040 *" способов сделать это. Предположим, я получаю набор звуков для воспроизведения через конструктор или сеттер. Я мог бы использовать:

  • AsyncTasks
  • Сопрограммы в Kotlin
  • Runnables (с обработчиками для управления задержкой).

Ключевой вопрос заключается в том, чтобы иметь возможность управлять жизненным циклом звуков и жизненных циклов MediaPlayer, чтобы я мог останавливать / возобновлять / сбрасывать любое количество игроков.

Эта проблема звучит как минимум шаблона проектирования и / или чего-то, с чем кто-то должен был столкнуться раньше. Какой самый лучший / самый ортодоксальный способ go решить эту проблему?

...