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.
Il metodo GetService accede a servizi aggiuntivi dall'oggetto client audio.
Sintassi
HRESULT GetService(
[in] REFIID riid,
[out] void **ppv
);
Parametri
[in] riid
ID dell'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 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 contato 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, restituisce S_OK. Se ha esito negativo, i possibili codici restituiti includono, ma non sono limitati, i valori illustrati nella tabella seguente.
| Codice restituito | Description |
|---|---|
|
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 a un'interfaccia IAudioRenderClient in un endpoint di acquisizione. |
|
Il dispositivo endpoint audio è stato scollegato oppure l'hardware audio o le risorse hardware associate sono state riconfigurate, disabilitate, rimosse o altrimenti rese non disponibili per l'uso. |
|
Le risorse del flusso sono state invalidate. Questo errore può essere generato per i motivi seguenti: - Il flusso è sospeso. - Un flusso esclusivo o offload viene disconnesso. - Un'applicazione in pacchetto che ha una modalità esclusiva o un flusso di offload è inattiva. - Un flusso di "output protetto" viene chiuso. |
|
Il servizio audio windows non è in esecuzione. |
Osservazioni:
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 .
Il metodo GetService supporta le interfacce di servizio seguenti:
- IAudioCaptureClient
- IAudioClock
- IAudioRenderClient
- IAudioSessionControl
- IAudioStreamVolume
- IChannelAudioVolume
- IMFTrustedOutput
- ISimpleAudioVolume
Per informazioni sull'uso di driver audio attendibili in OTAs, vedere Protected User Mode Audio (MDF).
Si noti che l'attivazione di IMFTrustedOutput 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'OTA audio potrebbe non funzionare nel PMP e le impostazioni di protezione sono meno robuste.
Per ottenere l'ID interfaccia per un'interfaccia del 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 servizio creati chiamando GetService, oltre a chiamare Release sull'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 e monitorano 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 | Value |
|---|---|
| Client minimo supportato | Windows Vista [app desktop | App UWP] |
| Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
| Piattaforma di destinazione | Windows |
| Header | audioclient.h |
Vedere anche
Interfaccia IAudioCaptureClient
Interfaccia IAudioRenderClient
Interfaccia IAudioSessionControl
Interfaccia IAudioStreamVolume