Esplorazione del motore audio di Windows Vista
Questo argomento presenta una panoramica del motore audio di Windows Vista. Si concentra sui concetti che consentono di comprendere il modo in cui le API e gli sAPO interagiscono.
Il diagramma seguente presenta un layout semplificato della struttura interna del motore audio.
Come illustrato nel diagramma, le API e gli sAPO forniti dal sistema sono i blocchi predefiniti di base del motore audio. Il motore audio configura le API e gli sAPO forniti dal sistema in componenti chiamati pipe. Esistono due tipi di pipe nel motore audio:
Le pipe di flusso sono costituite da API e sAPO che eseguono l'elaborazione audio digitale locale per il flusso da una singola applicazione. Lo sAPO in questo tipo di pipe viene definito sAPO (LFX sAPO).
Le pipe dei dispositivi sono costituite da API e sAPO che eseguono l'elaborazione audio digitale che influisce su tutti i flussi a livello globale. Lo sAPO in questo tipo di pipe è denominato sAPO (GFX sAPO) degli effetti globali.
La tabella seguente illustra gli sAPO disponibili nel motore audio di Windows Vista e il tipo di effetti di sistema applicati.
Windows Vista sAPO | Effetto di sistema |
---|---|
Boost basso |
LFX |
Gestione bassi |
LFX |
Equalizzazione della voce |
LFX |
Protezione a bassa frequenza |
LFX |
Riempimento altoparlante |
LFX |
Fantasma altoparlante |
LFX |
Racchiudi virtuale |
LFX |
Virtualized Surround over Headphones |
LFX |
Audio avanzato per computer portatili |
GFX |
Correzione della stanza |
GFX |
Quando un'applicazione audio avvia l'elaborazione audio, il motore audio configura le API fornite dal sistema e gli sAPO in un grafico audio per elaborare i dati audio digitali. Il meccanismo usato dal motore audio per la compilazione del grafico audio è un dettaglio di sistema e non verrà discusso.
L'applicazione audio può avviare la connessione in modalità condivisa o in modalità esclusiva. Anche se un set predefinito di sAPOs è installato con Windows Vista, gli sAPO non sono considerati componenti di sistema e pertanto sono personalizzabili.
Modalità condivisa
In modalità condivisa, un'applicazione audio condivide l'hardware audio con altre applicazioni audio in esecuzione in altri processi. Il motore audio combina i flussi di queste applicazioni e riproduce la combinazione risultante attraverso l'hardware. Qualsiasi applicazione che apre un flusso in modalità condivisa deve selezionare il formato di combinazione usato dal motore audio. Il vantaggio dell'uso della modalità condivisa è che il motore audio di Windows Vista fornisce un oggetto di elaborazione audio (APO) predefinito per fornire le funzionalità di supporto necessarie. Lo svantaggio dell'uso della modalità condivisa è che la latenza del flusso audio è superiore a quella in modalità esclusiva. Nell'esempio di codice seguente viene illustrata la sintassi per inizializzare un flusso audio in modalità condivisa.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_SHARED,
0,
0,
0,
pWfx,
&m_SubmixGuid);
Modalità esclusiva
Al contrario, quando un'applicazione apre un flusso in modalità esclusiva, l'applicazione ha accesso esclusivo all'hardware audio. In questa modalità l'applicazione può selezionare qualsiasi formato audio supportato dall'endpoint. Il vantaggio dell'uso della modalità esclusiva è che la latenza del flusso audio è inferiore a quella in modalità condivisa. Lo svantaggio dell'uso della modalità esclusiva è che è necessario fornire il proprio APO per gestire la funzionalità di supporto del motore audio. Solo un numero ridotto di applicazioni di livello professionale richiede questa modalità di funzionamento. Nell'esempio di codice seguente viene illustrata la sintassi per inizializzare un flusso audio in modalità esclusiva.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_EXCLUSIVE,
0,
0,
0,
pWfxEx,
&m_SubmixGuid);
Dopo che un'applicazione avvia l'elaborazione audio, il generatore di grafo configura gli sAPO in un grafico audio e inizializza anche gli sAPO. Il servizio audio negozia quindi con LFX APO per stabilire il formato per i dati audio all'input e all'output dell'APO. Per altre informazioni, vedere Formatta negoziazione.