The microphone gain for our app running on Safari/MacOS is substantially lower than with other browsers. What might account for that and what is the preferred method for a web app to control microphone gain.
Safari on macOS enables echoCancellation by default as part of its WebKit audio processing. When echoCancellation is active, any other apps recording audio concurrently can experience a significantly reduced input volume -- this is a known WebKit behavior. However, your own app should still be receiving a normal input level regardless.
A couple of clarifying questions that would help narrow this down:
- Is
echoCancellationenabled? (either explicitly or left at its default) in your getUserMedia constraints? - Is the low volume observed within your app itself, or are you noticing it in other apps recording at the same time?