Metodo IAudioClient::GetService (audioclient.h)
Il metodo GetService accede a servizi aggiuntivi dall'oggetto client audio.
Sintassi
HRESULT GetService(
[in] REFIID riid,
[out] void **ppv
);
Parametri
[in] riid
ID interfaccia per il servizio richiesto. Il client deve impostare questo parametro su uno dei valori REFIID seguenti:
IID_IAudioCaptureClient
IID_IAudioClientDuckingControl
IID_IAudioClock
IID_IAudioRenderClient
IID_IAudioSessionControl
IID_IAudioStreamVolume
IID_IChannelAudioVolume
IID_IMFTrustedOutput
IID_ISimpleAudioVolume
Per altre informazioni, vedere la sezione Osservazioni.
[out] ppv
Puntatore a una variabile puntatore in cui il metodo scrive l'indirizzo di un'istanza dell'interfaccia richiesta. Tramite questo metodo, il chiamante ottiene un riferimento conteggiato all'interfaccia. Il chiamante è responsabile del rilascio dell'interfaccia, quando non è più necessario, chiamando il metodo Release dell'interfaccia. Se la chiamata GetService ha esito negativo, *ppv è NULL.
Valore restituito
Se il metodo ha esito positivo, viene restituito S_OK. Se ha esito negativo, i codici restituiti possibili includono, ma non sono limitati a, i valori visualizzati nella tabella seguente.
Codice restituito | Descrizione |
---|---|
|
Il parametro ppv è NULL. |
|
L'interfaccia richiesta non è disponibile. |
|
Il flusso audio non è stato inizializzato. |
|
Il chiamante ha tentato di accedere a un'interfaccia IAudioCaptureClient in un endpoint di rendering o in un'interfaccia IAudioRenderClient in un endpoint di acquisizione. |
|
Il dispositivo endpoint audio è stato scollegato o l'hardware audio o le risorse hardware associate sono state riconfigurate, disabilitate, rimosse o altrimenti non disponibili per l'uso. |
|
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 inizializza il flusso audio chiamando correttamente il metodo IAudioClient::Initialize .
Il metodo GetService supporta le interfacce di servizio seguenti:
- IAudioCaptureClient
- IAudioClock
- IAudioRenderClient
- IAudioSessionControl
- IAudioStreamVolume
- IChannelAudioVolume
- FMTrustedOutput
- ISimpleAudioVolume
Per informazioni sull'uso di driver audio attendibili in OTA, vedere Audio in modalità utente protetta (PUMA).
Si noti che l'attivazione di FMTrustedOutput tramite questo meccanismo funziona indipendentemente dal fatto che il chiamante sia in esecuzione in PMP. Tuttavia, se il chiamante non è in esecuzione in un processo protetto ,ovvero il chiamante non è all'interno del PMP di Media Foundation, l'audio OTA potrebbe non funzionare nel PMP e le impostazioni di protezione sono meno affidabili.
Per ottenere l'ID interfaccia per un'interfaccia di servizio, usare l'operatore __uuidof . Ad esempio, l'ID interfaccia di IAudioCaptureClient è definito come segue:
const IID IID_IAudioCaptureClient __uuidof(IAudioCaptureClient)
Per informazioni sull'operatore __uuidof, vedere la documentazione di Windows SDK.
Per rilasciare l'oggetto IAudioClient e liberare tutte le risorse associate, il client deve rilasciare tutti i riferimenti a tutti gli oggetti di servizio creati chiamando GetService, oltre a chiamare Release nell'interfaccia IAudioClient stessa. Il client deve rilasciare un servizio dallo stesso thread che rilascia l'oggetto IAudioClient .
Le interfacce IAudioSessionControl, IAudioStreamVolume, IChannelAudioVolume e ISimpleAudioVolume controllano gli aspetti delle sessioni audio e dei flussi in modalità condivisa. Queste interfacce non funzionano con flussi in modalità esclusiva.
Per esempi di codice che chiamano il metodo GetService , vedere gli argomenti seguenti:
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 IAudioCaptureClient
Interfaccia IAudioRenderClient
Interfaccia IAudioSessionControl
Interfaccia IAudioStreamVolume