I have a networked app/service on a stationary Android box that receives audio from a remote handheld device.
I need Android box's voice recognition apps (e.g. Google App) to process this audio. These apps read audio from microphone.
How can I route audio available in my app/service so it appears to be coming in from microphone?
I believe DEVICE_OUT_REMOTE_SUBMIX in AudioSystem has something to do with it, but I cannot find any documentation on this.
Voice apps are reading audio from
AUDIO_DEVICE_IN_BUILTIN_MIC (or Android routes their input audio from HAL that implements this device)
I wrote a Audio HAL for Android, and configured it to implement
AUDIO_DEVICE_IN_BUILTIN_MIC while I removed primary HAL's conf for this input. This is sufficient for other mic-input apps to read audio from my HAL.
I feed the audio to HAL through another
AUDIO_DEVICE_OUT_LINE which my HAL implements but I could also switch it over to unix-socket if required in future.
More details on config were discussed here