srctree

Robin Linden parent 93bb073e d39cde57
Fix some phones being unable to create an audio capture

inlinesplit
domain/src/main/kotlin/av/AudioCapture.kt added: 11, removed: 10, total 1
@@ -18,19 +18,20 @@ private fun findAudioRecord(sampleRate: Int, channels: Int): AudioRecord? {
return null
}
 
val recorder = AudioRecord(
// Seems like not all Xiaomi phones have a VOICE_COMMUNICATION audio source, so try a few different ones.
val audioSources = arrayOf(
MediaRecorder.AudioSource.VOICE_COMMUNICATION,
sampleRate,
channelConfig,
audioFormat,
bufferSize
MediaRecorder.AudioSource.MIC,
MediaRecorder.AudioSource.DEFAULT,
)
 
if (recorder.state != AudioRecord.STATE_INITIALIZED) {
return null
for (audioSource in audioSources) {
val recorder = AudioRecord(audioSource, sampleRate, channelConfig, audioFormat, bufferSize)
if (recorder.state == AudioRecord.STATE_INITIALIZED) {
return recorder
}
}
 
return recorder
return null
}
 
class AudioCapture(private val sampleRate: Int, private val channels: Int) {