#flutter #audio #service #audio-recording #dart-isolates
Вопрос:
Моя цель-записывать окружающее через микрофон, пока аудиофайл воспроизводится через наушники. Я решил использовать плагин audio_service для аудиоплеера, чтобы звук продолжал воспроизводиться, даже когда приложение находится в фоновом режиме.
Я добавил плагин flutter_sound в примерный проект плагина audio_service и проверил, могу ли я начать запись в задаче AudioPlayerTask. Цель состоит в том, чтобы записать звук в определенное время позже в будущем, если звук все еще воспроизводится. Когда я это делаю, плагин не может быть найден. Сначала я подумал, что это может быть так, потому что задача AudioPlayerTask выполняется в отдельном изолированном режиме, но я использую плагин path_provider для определения пути к файлу, который найден и выполнен правильно.
Кто-нибудь пробовал использовать flutter_sound в сочетании с audio_service?
Мое раздвоенное репо: https://github.com/trybnikova/audio_service Мои изменения: смотрите последнюю фиксацию
Шаги для воспроизведения поведения (только для Android):
- Клонировать репо
- Откройте проект «пример»
- Сборка и установка на устройстве
- Откройте настройки приложения «Демонстрация аудиосервиса» и разрешите разрешение микрофона (для упрощения запроса не был добавлен код).
- Запустите приложение
- Нажмите «Аудиоплеер».
Я/предсердий (16652): //данные пользователя/0/сом.ryanheise.audioserviceexample/app_flutter/scene_recording.WAV в
я/предсердий (16652): ПС — — — -> openAudioSession
я/предсердий (16652): —> openAudioSession
я/предсердий (16652): сброс flutter_sound регистратор плагин
е/трепетание (16652): [ошибка:флаттер/Либ/ИП/ui_dart_state.ГК(186)] необработанное исключение: MissingPluginException(нет реализации для метода resetPlugin на канале ком.dooboolab.flutter_sound_recorder)
е/трепетание (16652): #0 MethodChannel._invokeMethod (пакет:флаттер/ГРЦ/услуги/platform_channel.в Dart:156:7)
Е/трепетание (16652):
е/трепетание (16652): #1 FlutterSoundRecorder._openAudioSession (в упаковке:flutter_sound/общественных/flutter_sound_recorder.Дарт:393:9)
е/трепетание (16652):
е/трепетание (16652): #2 FlutterSoundRecorder.openAudioSession (в упаковке:flutter_sound/общественных/flutter_sound_recorder.Дарт:355:11)
е/трепетание (16652): е/трепетание (16652): #3 BasicLock.синхронизированные (пакет:синхронизированные/в src/basic_lock.Дарт:33:16)
е/трепетание (16652):
е/трепетание (16652): #4 FlutterSoundRecorder.openAudioSession (в упаковке:flutter_sound/общественных/flutter_sound_recorder.Дарт:354:5)
E/флаттер (16652):
E/флаттер (16652): #5 аудиоплаертаск._тестРекордер (пакет:audio_service_example/main.dart:333:5)