Architettura audio di Windows
Questo argomento ha fornito un riepilogo generale dell'architettura audio di Windows 10/11.
Diagramma dello stack audio di Windows 10/11
Questo diagramma fornisce un riepilogo degli elementi principali dello stack audio di Windows 10/11.
API
API di primo livello
Le API di primo livello vengono usate per lo sviluppo di applicazioni. Queste API sono attualmente in uso e supportate.
- Classe MediaElement XAML(C#, VB, C++)
- Tag oggetto audio HTML e oggetti<> video (usati da siti Web e Windows App Web)
- Spazio dei nomi Windows.Media.Capture (C#, VB, C++)
- Microsoft Media Foundation (C++)
Queste API precedenti sono deprecate.
API di basso livello
Queste API di livello inferiore sono consigliate per lo streaming audio.
Questa API di livello inferiore è consigliata per l'enumerazione.
Queste API non sono consigliate per le applicazioni Windows.
- Informazioni sull'API MMDevice (sostituita da Windows.Devices.Enumeration)
- DeviceTopology API
- EndpointVolume API
Motore audio
Il motore audio è costituito da due componenti correlati, ovvero Audio Device Graph (audiodg.exe), che carica il motore audio (audioeng.dll).
Motore audio:
- Combina ed elabora i flussi audio. Per altre informazioni su come il motore audio usa i buffer per trasferire l'audio, vedi Informazioni sul driver di porta WaveRT.
- Carica gli oggetti di elaborazione audio (APO), ovvero plug-in specifici H/W che elaborano il segnale audio. Per altre informazioni sulle API, vedere Oggetti di elaborazione audio di Windows.
Servizio audio (audiosrv.dll)
Il servizio audio:
- Viene usato per configurare e controllare i flussi audio.
- Implementa i criteri di Windows per la riproduzione audio in background, l'anatraggio e così via.
Generatore di endpoint audio (audioendpointbuilder.exe)
Generatore di endpoint audio (audioendpointbuilder.exe):
- Viene usato per individuare nuovi dispositivi audio e creare endpoint audio software. Per altre informazioni sull'algoritmo usato, vedere Algoritmo di Generatore di endpoint audio.
Driver audio
Driver audio:
- Seguire il modello port-miniport. Per altre informazioni, vedere Terminologia audio WDM e Sviluppo di un driver miniport WaveRT.
- Consente allo stack audio di eseguire il rendering e l'acquisizione dell'audio da diversi dispositivi audio, tra cui: altoparlanti e microfoni integrati, cuffie/cuffie, dispositivi USB, dispositivi Bluetooth, HDMI e così via.
- Il modello port-miniport corrisponde all'architettura avanzata del suono Linux ALSA
- Per informazioni sul codice del driver di esempio, vedere Driver audio di esempio.
Hardware
L'hardware audio presente in qualsiasi dispositivo varia ma può includere:
- Codec audio
- DSP (facoltativo)
- Altoparlanti integrati, microfono e così via
- Dispositivi esterni: dispositivi audio USB, dispositivi audio Bluetooth, audio HDMI e così via.
- L'elaborazione dei segnali può essere implementata anche in H/W (ad esempio, il codec o il DSP), anziché o oltre alle API.