Encountering issues converting live audio to Base64 for a Shazam-like API. Revised Kotlin sample below:
class AudioHandler {
fun beginRecording(tempFile: File) {
val recorder = android.media.MediaRecorder().apply {
setAudioSource(android.media.MediaRecorder.AudioSource.MIC)
setOutputFormat(android.media.MediaRecorder.OutputFormat.THREE_GPP)
setAudioEncoder(android.media.MediaRecorder.AudioEncoder.AMR_NB)
setOutputFile(tempFile.absolutePath)
prepare()
start()
}
}
fun completeRecording(recorder: android.media.MediaRecorder, audioFile: File): String {
recorder.stop()
recorder.reset()
return android.util.Base64.encodeToString(audioFile.readBytes(), android.util.Base64.NO_WRAP)
}
}