35 lines
912 B
Kotlin
35 lines
912 B
Kotlin
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
|
|
}
|
|
}
|