Detecção não é mágica — é handshake de hardware definido seguido de carregamento de driver. Aqui está a cadeia.
Camada de Hardware
- Detecção de plugue (3,5 mm TRS/TRRS): Chave mecânica dentro da entrada fecha ao inserir plugue → puxa pino MIC/SENSE para baixo → codec de áudio (Realtek ALCxxx, Cirrus, Conexant) sinaliza OS via interrupção HDA/AC'97/I2S.
- USB Audio Class (UAC): Headset/DAC/caixa USB enumera como dispositivo USB Audio Class 1.0/2.0/3.0 → OS carrega driver genérico USB Audio (sem driver do fabricante necessário).
- Bluetooth: Perfis A2DP (áudio estéreo) + HFP/HSP (microfone) → BlueZ (Linux), CoreBluetooth (macOS), stack Bluetooth do Windows.
- HDMI/DisplayPort: Bloco EDID do sink (monitor/TV/receptor) declara capacidade de áudio (LPCM, Dolby, DTS, canais, taxas de amostragem) → driver de áudio da GPU expõe como dispositivo de saída.
Camada de Software
- Subsistema de Áudio do OS: Core Audio (macOS), WASAPI/WDMAUD (Windows), PipeWire/PulseAudio/ALSA (Linux), AudioFlinger (Android).
- Drivers de Dispositivo: Específicos do codec (Realtek, Cirrus) ou class-compliant (USB Audio, Bluetooth A2DP, HD Audio).
- Motor de Políticas: Seleção de dispositivo padrão, atribuição de papel (console, comunicações, multimídia), volume por app, áudio espacial, efeitos (APO no Windows, Audio Units no macOS).
Passo a Passo: Plugando Fone Com Fio
- Plugue inserido → chave da entrada fecha → interrupção GPIO do codec.
- Firmware do codec lê tipo de plugue (TRS vs TRRS) via medição de impedância no bias do MIC.
- Codec notifica OS via resposta não solicitada High Definition Audio.
- Serviço de áudio do OS enumera novo endpoint: "Fones de ouvido (Realtek Audio)" ou "Headset".
- Motor de políticas: se "Troca automática" ligado, define como padrão comunicações + render.
- UI atualiza: ícone de volume mostra fones, roteamento sai das caixas.
Por Que Falha o Reconhecimento
- Chave da entrada travada (fiapo, corrosão) → sem interrupção.
- Driver faltando/corrompido (Windows: "High Definition Audio Device" fallback genérico).
- Áudio desabilitado no BIOS/UEFI.
- Bluetooth: conflito de perfil, pareado mas não conectado, mismatch de codec (LDAC vs AAC).
- HDMI: EDID do sink não lido (cabo, repetidor, TV desligada) → endpoint de áudio não exposto.
Debug Profissional
- Windows: Gerenciador de Dispositivos → Controladores de som, vídeo e jogos → verifique codec;
msinfo32 → Componentes → Dispositivo de Som. - macOS: Option-clique no menu Volume → mostra todos dispositivos entrada/saída; Audio MIDI Setup para multicanal.
- Linux:
dmesg -T | grep -i audio, pactl list, cat /proc/asound/cards.
Conclusão
Computador "reconhece" endpoints de áudio via detecção de presença de hardware (chave da entrada, enumeração USB, pareamento BT, EDID) → driver de classe ou vendor → política de áudio do OS. Sem mágica — apenas stack bem definido.