As setSampleRate wakes the microphone, but doesn't actually set any buffers moving down the stream API, the event handlers to turn the microphone back off never actually get calls (they're part of the pipeline at the output stage of the mic, so only run when a buffer appears)
The upshot of this is that setting a sample rate will wake the mic, and keep it awake forever (until something actually uses the mic)
As setSampleRate wakes the microphone, but doesn't actually set any buffers moving down the stream API, the event handlers to turn the microphone back off never actually get calls (they're part of the pipeline at the output stage of the mic, so only run when a buffer appears)
The upshot of this is that setting a sample rate will wake the mic, and keep it awake forever (until something actually uses the mic)