package core.utils import android.content.Context import android.media.MediaRecorder import android.os.Build import java.io.File import java.io.FileOutputStream class VoiceRecorder(private val context: Context) { private var recorder: MediaRecorder? = null fun startRecording(outputFile: File) { recorder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { MediaRecorder(context) } else { MediaRecorder() }.apply { setAudioSource(MediaRecorder.AudioSource.MIC) setOutputFormat(MediaRecorder.OutputFormat.MPEG_4) setAudioEncoder(MediaRecorder.AudioEncoder.AAC) setOutputFile(FileOutputStream(outputFile).fd) prepare() start() } } fun stopRecording() { recorder?.apply { stop() release() } recorder = null } }