audio_waveform_kit 1.0.0
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иAudioRecordingBlocAudioRecordButton— кнопка записи/остановки с фабричным конструкторомdefaultStyle()RecordingTimer— отображение прошедшего времени записиAudioWaveformPlayer— самодостаточный виджет воспроизведения с прогресс-баром; работает с файлом (native) и WAV-байтами (web)
Визуализация (live, во время записи)
WaveformDisplay— огибающая волновой формы; стилиWaveformStyle.envelopeиWaveformStyle.stringMessengerWaveformDisplay— 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,$ResetAudioPlayerBloc— конечный автомат воспроизведения:$Idle / $Playing / $Paused / $Completed / $Error; события$Play,$Pause,$Stop,$Seek
Анализ и модели
SpectrumAnalyzer— чистый Dart FFT с оконной функцией Ханна, 50 % перекрытием, авто-нормализацией; методыanalyze(),computeTimeline(),analyzeRaw()SpectrumConfig— настройки FFT:fftSize,frequencyBands,frequencyMin/Max,sampleRate,dynamicRangeDb,displayTypeRecordingResult— контейнер результата:filePath,wavBytes,duration,waveformSamples,rmsSamples,snapshotSamples,spectrumData,spectrumTimeline
Утилиты
AudioUtils—encodeWav(),wavToSamples(),formatDuration()PlatformUtils—isWeb,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 |