INNER CODE UNIT · Kotlin
onDraw
Ayush0Chaudhary/blurr · app/src/main/java/com/blurr/voice/AudioWaveView.kt:153
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
for (i in 0 until waveCount) {
wavePaths[i].reset()
wavePaths[i].moveTo(0f, height.toFloat())
val waveMaxHeight = height * audioAmplitude * waveAmplitudeMultipliers[i]
val currentJitter = (Random.nextFloat() - 0.5f) * waveMaxHeight * jitterAmount
for (x in 0..width step 5) {
val sineInput = (x * (Math.PI * 2 / width) * waveFrequencies[i]) + wavePhaseShifts[i]
val sineOutput = (sin(sineInput) * 0.5f + 0.5f)
val y = height - (waveMaxHeight * sineOutput) + currentJitter
wavePaths[i].lineTo(x.toFloat(), y.toFloat())
}
wavePaths[i].lineTo(width.toFloat(), height.toFloat())
wavePaths[i].close()
canvas.drawPath(wavePaths[i], wavePaints[i])
}