audio_waveform_kit 1.0.0 copy "audio_waveform_kit: ^1.0.0" to clipboard
audio_waveform_kit: ^1.0.0 copied to clipboard

Audio recording with waveform and spectrum visualization

1.0.0 #

Features #

  • AudioWaveformScope — DI-scope виджет; оборачивает дерево и предоставляет AudioRecordingService, SpectrumAnalyzer и AudioRecordingBloc
  • AudioRecordButton — кнопка записи/остановки с фабричным конструктором defaultStyle()
  • RecordingTimer — отображение прошедшего времени записи
  • AudioWaveformPlayer — самодостаточный виджет воспроизведения с прогресс-баром; работает с файлом (native) и WAV-байтами (web)

Визуализация (live, во время записи)

  • WaveformDisplay — огибающая волновой формы; стили WaveformStyle.envelope и WaveformStyle.string
  • MessengerWaveformDisplay — RMS-волновая форма в стиле мессенджера
  • RecordingLevelDisplay — VU-метр реального времени
  • LiveSpectrumDisplay — живой FFT-спектр, обновляется каждые 50 мс
  • StringSnapshotDisplay — осциллограф из сырых PCM-семплов

Визуализация (static, после записи)

  • SpectrumDisplay — FFT-спектр; линейный и логарифмический режимы
  • TimelineSpectrumDisplay — тепловая карта время–частота
  • StaticLevelDisplay — статический VU-метр
  • StaticMessengerWaveformDisplay — статическая RMS-волновая форма
  • StaticStringSnapshotDisplay — статическая осциллограмма

BLoC и состояния

  • AudioRecordingBloc — конечный автомат записи: $Idle → $Recording → $Finished / $Error; события $Start, $Stop, $Reset
  • AudioPlayerBloc — конечный автомат воспроизведения: $Idle / $Playing / $Paused / $Completed / $Error; события $Play, $Pause, $Stop, $Seek

Анализ и модели

  • SpectrumAnalyzer — чистый Dart FFT с оконной функцией Ханна, 50 % перекрытием, авто-нормализацией; методы analyze(), computeTimeline(), analyzeRaw()
  • SpectrumConfig — настройки FFT: fftSize, frequencyBands, frequencyMin/Max, sampleRate, dynamicRangeDb, displayType
  • RecordingResult — контейнер результата: filePath, wavBytes, duration, waveformSamples, rmsSamples, snapshotSamples, spectrumData, spectrumTimeline

Утилиты

  • AudioUtilsencodeWav(), wavToSamples(), formatDuration()
  • PlatformUtilsisWeb, hasMicrophonePermission()

Platform support #

Platform Recording Playback
Android ✓ file ✓ file
iOS ✓ file ✓ file
macOS ✓ file ✓ file
Windows ✓ file ✓ file
Linux ✓ file ✓ file
Web ✓ WAV bytes ✓ WAV bytes
1
likes
0
points
38
downloads

Publisher

unverified uploader

Weekly Downloads

Audio recording with waveform and spectrum visualization

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

audioplayers, bloc_concurrency, equatable, flutter, flutter_bloc, path_provider, record

More

Packages that depend on audio_waveform_kit