Zoom has its own audio device settings, tucked inside Zoom Preferences > Audio, with a speaker dropdown and a microphone dropdown that are entirely separate from the Mac's system-wide output. If that dropdown is pointed at a specific device, it stays pointed there no matter what you change at the macOS level, which is why routing Zoom's audio from outside the app can seem to do nothing.
The goal is simple: calls go to headphones so a meeting is not audible to the room, everything else, music, Slack pings, other apps, stays on the desk speakers. Getting there means knowing which of two separate settings is actually in charge, because they do not always agree.
Zoom's own audio settings, and why they exist
Open Zoom, go to Preferences, then Audio. There are two dropdowns near the top: one for Speaker, one for Microphone. Both default to "Same as System", following whatever the Mac's system-wide output and input are set to. But either can be changed to a specific device instead, and plenty of people have done this without meaning to, usually by picking a device from the in-call audio menu during a past meeting.
Zoom keeps this setting for a reasonable reason: a call needs its audio device to stay put for the duration of the call, even if something else on the Mac changes the system default in the background. Pinning the call to a specific speaker and microphone protects against that. The tradeoff is that once pinned, Zoom stops listening to changes made anywhere else, including the system output picker and any app that tries to route Zoom's audio at the macOS level.
Why per-app routing can seem to fight Zoom
macOS-level per-app routing works by intercepting an app's audio stream before it reaches a device and sending it somewhere else. That works cleanly for apps with no output preference of their own. Zoom is different: it has already asked for a specific device by name, at the Zoom Preferences level, and that request sits above whatever macOS or a routing app decides afterwards.
In practice this shows up one of two ways: the routing change appears to do nothing, because Zoom keeps sending audio to whatever device its own dropdown names, or call audio jumps between two devices depending on which layer wins. Neither is a fault in the routing itself. It is two layers giving Zoom two different instructions, and Zoom's own setting is the one written closest to the app.
Which layer is actually in control
Two layers, two different questions:
- Zoom's own Preferences > Audio setting decides where call audio goes whenever it names a specific device. This is the layer with priority for anything happening inside a Zoom call, and it overrides system and per-app settings when it is not left on "Same as System".
- macOS-level per-app routing decides where an app's audio goes when that app has no competing preference of its own, or when its own preference is set to follow the system. This is the layer that can send Zoom, and every other app, to whichever device you choose, without opening each app's own settings individually.
The working order is to fix the first layer, then use the second. Set Zoom's own Speaker and Microphone to "Same as System" so it stops asserting a preference, and macOS-level routing is free to decide where Zoom's audio goes, the same way it decides for every other app.
Every feature free for 30 days. No account, no card details.
Download for MacSetting it up: calls on headphones, everything else on speakers
With Zoom's own audio setting cleared to "Same as System", the rest is a Chorus per-app assignment. Open Chorus from the menu bar, find Zoom in the app list, and set its output to your headphones. Every other app, whether that is music, a browser tab, or a notification sound, is left alone and keeps playing through your desk speakers, because per-app routing only touches the app you assign.
The assignment is remembered against Zoom itself, so it does not need setting again for the next call. Joining a meeting sends it to headphones automatically, and closing it leaves your desk speakers exactly as they were.
This same pattern covers any call app with its own device preference, not only Zoom. Microsoft Teams and Google Meet's desktop app both keep similar in-app audio settings, and the same order applies: clear it first, then route at the macOS level.
For the full Preferences panel walkthrough, see Zoom's own guide to testing audio settings.
Frequently asked questions
Why does Zoom have its own speaker and microphone settings?
Zoom Preferences > Audio has its own speaker and microphone dropdowns so calls can hold a stable device even if the Mac's system-wide default output changes, and so Zoom can offer call-specific options like automatically adjusting volume. It is a setting inside Zoom, not a copy of the macOS one, and the two are checked separately.
Why does routing Zoom's audio at the system level sometimes not work?
If Zoom's own Preferences > Audio has a specific speaker selected rather than "Same as System", Zoom keeps sending call audio to that device regardless of what the Mac's system-wide default output is set to. A macOS-level change only takes effect for Zoom once its own setting is switched to follow the system.
Which setting actually controls where Zoom's call audio goes?
Zoom's own Preferences > Audio setting takes priority for call audio whenever it points at a specific device. Set it to "Same as System" and the Mac's system-wide or per-app output takes over instead. Checking which one is set, rather than guessing, is the fastest way to fix routing that looks broken.
How do I send Zoom to headphones and keep everything else on speakers?
Set Zoom's own Preferences > Audio speaker to "Same as System" so it stops overriding anything, then use Chorus to send Zoom to your headphones while every other app stays on your desk speakers. Chorus remembers the choice per app, so it does not need repeating for the next call.
Does Chorus change Zoom's own audio preferences?
No. Chorus routes audio at the macOS level and does not open or edit Zoom's own settings. If Zoom's in-app device preference is pointed at a specific speaker, that still needs to be set to "Same as System" inside Zoom itself for macOS-level routing to take effect.