Share via


Metodo IAudioClient::SetEventHandle (audioclient.h)

Il metodo SetEventHandle imposta l'handle di evento che il sistema segnala quando un buffer audio è pronto per l'elaborazione da parte del client.

Sintassi

HRESULT SetEventHandle(
  [in] HANDLE eventHandle
);

Parametri

[in] eventHandle

Handle dell'evento.

Valore restituito

Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i possibili codici restituiti includono, ma non sono limitati, i valori illustrati nella tabella seguente.

Codice restituito Descrizione
E_INVALIDARG
EventHandle del parametro è NULL o un handle non valido.
AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED
Il flusso audio non è stato inizializzato per il buffering basato su eventi.
AUDCLNT_E_NOT_INITIALIZED
Il flusso audio non è stato inizializzato correttamente.
AUDCLNT_E_DEVICE_INVALIDATED
Il dispositivo endpoint audio è stato scollegato oppure l'hardware audio o le risorse hardware associate sono state riconfigurate, disabilitate, rimosse o altrimenti non disponibili per l'uso.
AUDCLNT_E_SERVICE_NOT_RUNNING
Il servizio audio di Windows non è in esecuzione.

Commenti

Questo metodo richiede l'inizializzazione precedente dell'interfaccia IAudioClient . Tutte le chiamate a questo metodo avranno esito negativo con l'errore AUDCLNT_E_NOT_INITIALIZED finché il client non inizializza il flusso audio chiamando correttamente il metodo IAudioClient::Initialize .

Durante l'inizializzazione del flusso, il client può, come opzione, abilitare il buffer basato su eventi. A tale scopo, il client chiama il metodo IAudioClient::Initialize con il flag AUDCLNT_STREAMFLAGS_EVENTCALLBACK impostato. Dopo aver abilitato il buffer guidato dagli eventi e prima di chiamare il metodo IAudioClient::Start per avviare il flusso, il client deve chiamare SetEventHandle per registrare l'handle di evento che il sistema segnalerà ogni volta che un buffer diventa pronto per l'elaborazione da parte del client.

L'handle eventi deve trovarsi nello stato non assegnato al momento in cui il client chiama il metodo Start .

Se il client ha abilitato il buffering basato su eventi di un flusso, ma il client chiama il metodo Start per tale flusso senza prima chiamare SetEventHandle, la chiamata Start avrà esito negativo e restituirà un codice di errore.

Se il client non abilita il buffer guidato dagli eventi di un flusso ma tenta di impostare un handle di evento per il flusso chiamando SetEventHandle, la chiamata avrà esito negativo e restituirà un codice di errore.

Per un esempio di codice che chiama il metodo SetEventHandle , vedere Flussi in modalità esclusiva.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione audioclient.h

Vedi anche

Interfaccia IAudioClient

IAudioClient::Initialize

IAudioClient::Start