Add some comment

This commit is contained in:
Benoit Marty 2025-10-13 16:06:08 +02:00 committed by Benoit Marty
parent 83c695d695
commit c10c60134c
4 changed files with 13 additions and 3 deletions

View file

@ -21,11 +21,13 @@ sealed interface VoiceMessageState {
val showCursor: Boolean,
val playbackProgress: Float,
val time: Duration,
// Values are between 0 and 1
val waveform: ImmutableList<Float>,
) : VoiceMessageState
data class Recording(
val duration: Duration,
// Values are between 0 and 1
val levels: ImmutableList<Float>,
) : VoiceMessageState
}

View file

@ -22,16 +22,19 @@ sealed interface VoiceRecorderState {
* The recorder is currently recording.
*
* @property elapsedTime The elapsed time since the recording started.
* @property levels The current audio levels of the recording as a fraction of 1.
* @property levels The current audio levels of the recording as a fraction of 1. All values are between 0 and 1.
*/
data class Recording(val elapsedTime: Duration, val levels: List<Float>) : VoiceRecorderState
data class Recording(
val elapsedTime: Duration,
val levels: List<Float>,
) : VoiceRecorderState
/**
* The recorder has finished recording.
*
* @property file The recorded file.
* @property mimeType The mime type of the file.
* @property waveform The waveform of the recording.
* @property waveform The waveform of the recording. All values are between 0 and 1.
* @property duration The total time spent recording.
*/
data class Finished(

View file

@ -63,6 +63,8 @@ class DefaultVoiceRecorder(
private var outputFile: File? = null
private var audioReader: AudioReader? = null
private var recordingJob: Job? = null
// List of Float between 0 and 1 representing the audio levels
private val levels: MutableList<Float> = mutableListOf()
private val lock = Mutex()

View file

@ -7,6 +7,8 @@
package io.element.android.libraries.voicerecorder.impl.audio
import androidx.annotation.FloatRange
interface AudioLevelCalculator {
/**
* Calculate the audio level of the audio buffer.
@ -14,5 +16,6 @@ interface AudioLevelCalculator {
* @param buffer The audio buffer containing 16bit PCM audio data.
* @return A float value between 0 and 1 proportional to the audio level.
*/
@FloatRange(from = 0.0, to = 1.0)
fun calculateAudioLevel(buffer: ShortArray): Float
}