Condividi tramite


Esplorazione del motore audio di Windows Vista

Questo argomento presenta una panoramica del motore audio di Windows Vista. È incentrato 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.

Diagramma che illustra il layout semplificato di un motore audio di Windows Vista.

Come mostrato nel diagramma, gli APO e sAPO forniti dal sistema sono i blocchi costitutivi di base del motore audio. Il motore audio configura le API e gli sAPO forniti dal sistema in componenti denominati pipe. Esistono due tipi di pipe nel motore audio:

  • Le pipe di flusso sono costituite da APO e sAPO che eseguono l'elaborazione audio digitale locale al flusso proveniente da una singola applicazione. Lo sAPO in questo tipo di tubo viene definito sAPO di effetti locali (LFX sAPO).

  • I canali dei dispositivi sono costituiti da APO e sAPO che eseguono l'elaborazione audio digitale che influisce su tutti i flussi a livello globale. Lo sAPO in questo tipo di tubo è chiamato sAPO per effetti globali (GFX sAPO).

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

Potenzia i bassi

LFX

Gestione dei bassi

LFX

Equalizzazione del volume

LFX

Protezione a bassa frequenza

LFX

Riempimento altoparlante

LFX

Fantasma acustico dell'altoparlante

LFX

Racchiudi virtuale

LFX

Surround virtualizzato su cuffie

LFX

Suono migliorato per i computer portatili

GFX

Correzione acustica 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. Sebbene sia installato un set predefinito di sAPO 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 l'inizializzazione di 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 le funzionalità di supporto del motore audio. Solo un numero ridotto di applicazioni a livello professionale richiede questa modalità di funzionamento. Nell'esempio di codice seguente viene illustrata la sintassi per l'inizializzazione di 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 grafici configura gli sAPO in un grafico audio e inizializza gli sAPO. Il servizio audio si coordina quindi con LFX APO per stabilire il formato dei dati audio in ingresso e in uscita dell'APO. Per altre informazioni, vedere Format Negotiation.