Установка и настройка
Для установки нам нужно подключить пакет и следуя инструкции из pub.dev добавить разрешение на использование микрофона для необходимых платформ.
Инициализация
Создаем поля для виджетов записи и воспроизведения аудио:
late final RecorderController recorderController;
late final PlayerController playerController
Инициализируем контроллеры:
@override
void initState() {
recorderController = RecorderController()
..androidEncoder = AndroidEncoder.aac
..androidOutputFormat = AndroidOutputFormat.mpeg4
..iosEncoder = IosEncoder.kAudioFormatMPEG4AAC
..sampleRate = 16000;
playerController = PlayerController();
super.initState();
}
Не забываем освобождать ресурсы:
@override
void dispose() {
recorderController.dispose();
playerController.dispose();
super.dispose();
}
Запись и воспроизведение
Для записи нужно проверить дал ли пользователь разрешение на использование микрофона:
final bool hasPermission = await recorderController.checkPermission();
Если оно у нас есть, то мы можем запустить запись, вызвав:
await recorderController.record();
Или остановить запись при помощи:
String pathAudio = await recorderController.stop() ?? '';
await playerController.preparePlayer(path: pathAudio);
Для проигрывания используем метод:
await playerController.startPlayer(finishMode: FinishMode.pause);
Для завершения вызываем:
await playerController.pausePlayer();
Для вывода на экран понадобятся виджеты
AudioWaveforms и AudioFileWaveforms. Они легко настраиваются с помощью полей waveStyle и playerWaveStyle, которые предлагают множество опций для кастомизации.
AudioWaveforms(
size: const Size(double.infinity, 50.0),
recorderController: recorderController,
),
Пакет также поддерживает различные слушатели для работы контроллеров, что делает его гибким и мощным инструментом для разработки.
Использовали ли вы пакет audio_waveforms в своих проектах? Расскажите о своем опыте в чате.