Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'API Sessione Audio Windows (WASAPI) consente alle applicazioni client di gestire il flusso di dati audio tra l'applicazione e un dispositivo punto di terminazione audio .
I file di intestazione Audioclient.h e Audiopolicy.h definiscono le interfacce WASAPI.
Ogni flusso audio è membro di una sessione audio . Tramite l'astrazione della sessione, un client WASAPI può identificare un flusso audio come membro di un gruppo di flussi audio correlati. Il sistema può gestire tutti i flussi nella sessione come singola unità.
Il motore audio è il componente audio in modalità utente , attraverso cui le applicazioni condividono l'accesso a un dispositivo di endpoint audio. Il motore audio trasferisce i dati audio tra un buffer di endpoint e un dispositivo endpoint. Per riprodurre un flusso audio tramite un dispositivo endpoint di rendering, un'applicazione scrive periodicamente dati audio in un buffer dell'endpoint di rendering. Il motore audio combina i flussi delle varie applicazioni. Per registrare un flusso audio da un dispositivo endpoint di acquisizione, un'applicazione legge periodicamente i dati audio da un buffer di endpoint di acquisizione.
WASAPI è costituito da diverse interfacce. Il primo è l'interfaccia IAudioClient. Per accedere alle interfacce WASAPI, un client ottiene innanzitutto un riferimento all'interfaccia IAudioClient di di un dispositivo endpoint audio chiamando il metodo IMMDevice::Activate con il parametro iid impostato su IID_IAudioClient REFIID. Il client chiama il metodo IAudioClient::Initialize per inizializzare un flusso in un dispositivo endpoint. Dopo l'inizializzazione di un flusso, il client può ottenere riferimenti alle altre interfacce WASAPI chiamando il metodo IAudioClient::GetService.
Molti dei metodi in WASAPI restituiscono il codice di errore AUDCLNT_E_DEVICE_INVALIDATED se il dispositivo endpoint audio usato da un'applicazione client non è valido. Spesso, l'applicazione può recuperare da questo errore. Per altre informazioni, vedere Ripristino da un errore Invalid-Device.
WASAPI implementa le interfacce seguenti.
Interfaccia | Descrizione |
---|---|
IAudioCaptureClient | Consente a un client di leggere i dati di input da un buffer dell'endpoint di acquisizione. |
IAudioClient | Consente a un client di creare e inizializzare un flusso audio tra un'applicazione audio e il motore audio o il buffer hardware di un dispositivo endpoint audio. |
IAudioClock | Consente a un client di monitorare la frequenza dei dati di un flusso e la posizione corrente nel flusso. |
IAudioRenderClient | Consente a un client di scrivere dati di output in un buffer dell'endpoint di rendering. |
IAudioSessionControl | Consente a un client di configurare i parametri di controllo per una sessione audio e di monitorare gli eventi nella sessione. |
IAudioSessionManager | Consente a un client di accedere ai controlli delle sessioni e ai controlli del volume sia per le sessioni audio multi-processo che per le sessioni audio specifiche del processo. |
IAudioStreamVolume | Consente a un client di controllare e monitorare i livelli di volume per tutti i canali in un flusso audio. |
IChannelAudioVolume | Consente a un client di controllare i livelli di volume per tutti i canali nella sessione audio a cui appartiene il flusso. |
ISimpleAudioVolume | Consente a un client di controllare il livello di volume master di una sessione audio. |
I client WASAPI che richiedono la notifica degli eventi correlati alla sessione devono implementare l'interfaccia seguente.
Interfaccia | Descrizione |
---|---|
IAudioSessionEvents | Fornisce notifiche di eventi correlati alla sessione, ad esempio modifiche a livello di volume, nome visualizzato e stato della sessione. |
Argomenti correlati