Simple live waveform implementation.

This commit is contained in:
David Langley 2023-10-26 23:46:03 +01:00
parent 4a390296cf
commit 510b1f63b9
10 changed files with 195 additions and 51 deletions

View file

@ -96,13 +96,13 @@ class VoiceRecorderImpl @Inject constructor(
when (audio) {
is Audio.Data -> {
val audioLevel = audioLevelCalculator.calculateAudioLevel(audio.buffer)
_state.emit(VoiceRecorderState.Recording(elapsedTime, audioLevel))
levels.add(audioLevel)
_state.emit(VoiceRecorderState.Recording(elapsedTime, levels))
encoder.encode(audio.buffer, audio.readSize)
}
is Audio.Error -> {
Timber.e("Voice message error: code=${audio.audioRecordErrorCode}")
_state.emit(VoiceRecorderState.Recording(elapsedTime, 0.0f))
_state.emit(VoiceRecorderState.Recording(elapsedTime, listOf()))
}
}
}