Я хочу разработать фоновый сервис для непрофессионального приложения, которое я создаю. Я справляюсь с Android, но я не профессиональный разработчик, так что извините, если что-то из этого наивно:)
Сервис - это стандартный сервис воспроизведения музыки c, использующий экземпляр MediaPlayer
для воспроизведения музыки c (SoundPool
не является опцией, учитывая длительность некоторых звуков), но имеет небольшое усложнение: он должен иметь возможность воспроизводить набор звуков, запланированных согласно некоторому правилу , но он не будет знать заранее, сколько и с каким планированием.
Планирование может представлять собой набор
- воспроизведения звука один раз
- воспроизведения Звук в непрерывном режиме l oop
- воспроизводит звук конечное число раз
- любой из вышеперечисленных с задержкой на старте
- et c. ..
Я изучаю варианты наиболее "1040 *" способов сделать это. Предположим, я получаю набор звуков для воспроизведения через конструктор или сеттер. Я мог бы использовать:
- AsyncTasks
- Сопрограммы в Kotlin
- Runnables (с обработчиками для управления задержкой).
Ключевой вопрос заключается в том, чтобы иметь возможность управлять жизненным циклом звуков и жизненных циклов MediaPlayer
, чтобы я мог останавливать / возобновлять / сбрасывать любое количество игроков.
Эта проблема звучит как минимум шаблона проектирования и / или чего-то, с чем кто-то должен был столкнуться раньше. Какой самый лучший / самый ортодоксальный способ go решить эту проблему?