пока не могу проверить на реальном устройстве, только эмуляторы, API 28,29, разрешение на микрофон не выдано
var recorder: AudioRecord? = null
try {
val minBufferSize = AudioRecord.getMinBufferSize(8000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT)
require(!(minBufferSize == AudioRecord.ERROR || minBufferSize == AudioRecord.ERROR_BAD_VALUE))
recorder = AudioRecord(
MediaRecorder.AudioSource.VOICE_COMMUNICATION,
8000,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
minBufferSize * 10)
// Wait until audio record is initialized.
var waitCycles = 20
while (recorder.state != AudioRecord.STATE_INITIALIZED && waitCycles > 0) {
Thread.sleep(250)
waitCycles -= 1
}
if (recorder.state != AudioRecord.STATE_INITIALIZED) {
throw Exception("Unable to initialize AudioRecord instance")
}
return recorder
я ожидаю что при создании AudioRecord должно сработать SecurityException, но получаю просто неинициализированный AudioRecord, как вызвать SecurityException?