Flutter: запланируйте звуковые события для фонового выполнения

#audio #mobile #dart #flutter #background-process

#Аудио #Мобильный #дротик #flutter #фоновый процесс #dart

Вопрос:

Я внедряю приложение в Flutter, для которого мне нужно заранее запланировать (аудио) события. Только после завершения одного события я могу запланировать следующее, поскольку продолжительность события может быть неизвестна ранее. Каждое звуковое событие является звуковым уведомлением для пользователя, поэтому планирование и воспроизведение звука должны работать, когда приложение не сфокусировано или телефон заблокирован.

В настоящее время мне не удается реализовать эти спецификации, и я думаю, что на данный момент я просто не думаю об этом правильно. Поскольку я недавно начал изучать Flutter, с моей стороны также могли возникнуть простые недоразумения. Позвольте мне обобщить то, что я знаю о фоновом выполнении и машинном коде в Flutter, пожалуйста, исправьте все ошибки в этих утверждениях:

  • Когда приложение теряет фокус (или телефон блокируется), выполнение кода прекращается.
  • Однако внутри «основного» Dart-кода я могу создать изоляцию, которая будет работать даже при заблокированном телефоне или без фокусировки на приложении.
  • Разные изолированные устройства вообще не используют общую память; они обмениваются данными через порты.
  • Там созданный изолят ничего не знает об экосистеме flutter, поэтому использовать плагины flutter невозможно.
  • По тем же причинам я также не могу использовать MethodChannels для связи с кодом платформы из изолята.

Из этого я делаю вывод:

  • Событие должно быть запланировано из отдельного Dart-isolate, чтобы блокировка телефона не остановила планирование.
  • Этот изолированный файл не сможет воспроизводить какой-либо аудиофайл сам по себе и не сможет взаимодействовать с кодом платформы.
  • Таким образом, ему необходимо взаимодействовать с основным изолятом, который может воспроизводить аудио. Однако, если приложение не открыто, код не будет отвечать.
  • Следовательно, этот подход не может работать?

Прямо сейчас я застрял на этом этапе и не знаю, как продолжить. Я предполагаю, что одним из вариантов может быть прямой вызов java / swift-кода для соответствующих собственных платформ и обработка планирования и звука там. Тем не менее, я надеюсь, что прямо сейчас я просто не вижу более простого варианта.

Комментарии:

1. Вы нашли решение?

2. @PaulSumpner Нет, но я также не использовал Flutter в прошлом году: ‘D В последний раз, когда я его использовал, для этого разрабатывались многообещающие пакеты, но я не знаю текущей ситуации