Arquitetura de áudio do Windows
Este tópico forneceu um resumo de alto nível da arquitetura de áudio do Windows 10/11.
Diagrama de pilha de áudio do Windows 10/11
Este diagrama fornece um resumo dos principais elementos da pilha de áudio do Windows 10/11.
APIs
APIs de nível superior
As APIs de nível superior são usadas para o desenvolvimento de aplicativos. Essas APIs estão em uso e há suporte no momento.
- Classe MediaElement XAML (C#, VB, C++)
- Objeto de áudio HTML e Objeto de vídeo<tags> (usados por sites e Aplicativos Web do Windows)
- Namespace Windows.Media.Capture (C#, VB, C++)
- Microsoft Media Foundation (C++)
Essas APIs mais antigas estão sendo preteridas.
APIs de baixo nível
Essas APIs de nível inferior são recomendadas para streaming de áudio.
Essa API de nível inferior é recomendada para enumeração.
Essas APIs não são recomendadas para aplicativos do Windows.
- Sobre a API MMDevice (substituída por Windows.Devices.Enumeration)
- API DeviceTopology
- API EndpointVolume
Mecanismo de áudio
O mecanismo de áudio consiste em dois componentes relacionados, o Audio Device Graph (audiodg.exe), que carrega o Audio Engine (audioeng.dll).
O mecanismo de áudio:
- Mixa e processa fluxos de áudio. Para obter mais informações sobre como o mecanismo de áudio usa buffers para transferir áudio, consulte Noções básicas sobre o driver de porta WaveRT.
- Carrega APOs (Objetos de processamento de áudio), que são plugins específicos de H/W que processam o sinal de áudio. Para obter mais informações sobre APOs, consulte Objetos de processamento de áudio do Windows.
Serviço de áudio (audiosrv.dll)
O serviço de áudio:
- É usado para configurar e controlar fluxos de áudio.
- Implementa políticas do Windows para reprodução de áudio em segundo plano, ducking, etc.
Construtor de pontos de extremidade de áudio (audioendpointbuilder.exe)
Construtor de pontos de extremidade de áudio (audioendpointbuilder.exe):
- É usado para descobrir novos dispositivos de áudio e criar pontos de extremidade de áudio de software. Para obter mais informações sobre o algoritmo usado, consulte Algoritmo do Construtor de pontos de extremidade de áudio.
Drivers de áudio
Drivers de áudio:
- Siga o modelo port-miniport. Para obter mais informações, consulte Terminologia de áudio WDM e Desenvolvendo um driver de miniporta WaveRT.
- Permita que a pilha de áudio renderize e capture áudio de vários dispositivos de áudio, incluindo: alto-falantes e microfones integrados, fones de ouvido/headsets, dispositivos USB, dispositivos Bluetooth, HDMI, etc.
- O modelo port-miniport corresponde ao Advanced Linux Sound Architecture (ALSA)
- Para obter informações sobre código de driver de exemplo, consulte Drivers de áudio de amostra.
Hardware
O hardware de áudio presente em qualquer dispositivo varia, mas pode incluir:
- Codec de áudio
- DSP (opcional)
- Alto-falantes integrados, microfone, etc
- Dispositivos externos: dispositivos de áudio USB, dispositivos de áudio Bluetooth, áudio HDMI, etc.
- O processamento de sinais também pode ser implementado no H/W (por exemplo, o codec ou o DSP), em vez de ou além dos APOs.