Как читать данные AudioRecord в короткий массив (приложение для Android, используя Kotlin) - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь записать 512 элементов (около 12 мс) аудио в Android, используя AudioRecord, и сохранить это аудио в массив шортов. Следует отметить, что в момент появления этого кода пользователь уже предоставил разрешение RECORD_AUDIO во время выполнения.

Смотрите код того, что я пробовал до сих пор. Похоже на базовое использование AudioRecord, но он возвращает все нули.

AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 512 * 2)
recorder!!.startRecording()
val sData = ShortArray(bufferElements)
recorder.read(sData, 0, bufferElements)
myText = findViewById<View>(R.id.myText) as TextView
myText.text = "Audio Data:\n" + sData[0].toString() + "\n" + sData[1].toString() + "\n" + sData[2].toString()

Я ожидаю увидеть первые 3 шорта в массиве - маленькие 16-битные числа (поскольку я нахожусь в относительно спокойной обстановке, но, тем не менее, с некоторым фоновым шумом). Вместо этого я всегда получаю 3 нуля.

...