Probably way too late but perhaps someone else will benefit from the discussion.
I have observed that the system will always jump to the recently plugged-in microphone. I assume this is because they assume that a person who just plugged in a microphone wants to use said microphone immediately.
My suggestion is to monitory the route change notifications and re-assert your wishes by calling setPreferredInput again. I have not tested this but give it a try.
Topic:
Media Technologies
SubTopic:
Audio
Tags: