Método IAudioClient::GetService (audioclient.h)
El método GetService accede a servicios adicionales desde el objeto de cliente de audio.
Sintaxis
HRESULT GetService(
[in] REFIID riid,
[out] void **ppv
);
Parámetros
[in] riid
Identificador de interfaz del servicio solicitado. El cliente debe establecer este parámetro en uno de los siguientes valores REFIID:
IID_IAudioCaptureClient
IID_IAudioClientDuckingControl
IID_IAudioClock
IID_IAudioRenderClient
IID_IAudioSessionControl
IID_IAudioStreamVolume
IID_IChannelAudioVolume
IID_IMFTrustedOutput
IID_ISimpleAudioVolume
Para obtener más información, vea la sección Comentarios.
[out] ppv
Puntero a una variable de puntero en la que el método escribe la dirección de una instancia de la interfaz solicitada. A través de este método, el autor de la llamada obtiene una referencia contada a la interfaz . El autor de la llamada es responsable de liberar la interfaz, cuando ya no es necesario, llamando al método Release de la interfaz. Si se produce un error en la llamada a GetService , *ppv es NULL.
Valor devuelto
Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los posibles códigos de retorno incluyen, pero no están limitados a, los valores que se muestran en la tabla siguiente.
Código devuelto | Descripción |
---|---|
|
El parámetro ppv es NULL. |
|
La interfaz solicitada no está disponible. |
|
La secuencia de audio no se ha inicializado. |
|
El autor de la llamada intentó acceder a una interfaz IAudioCaptureClient en un punto de conexión de representación o una interfaz IAudioRenderClient en un punto de conexión de captura. |
|
El dispositivo de punto de conexión de audio se ha desconectado o el hardware de audio o los recursos de hardware asociados se han reconfigurado, deshabilitado, quitado o no están disponibles para su uso. |
|
El servicio de audio de Windows no se está ejecutando. |
Comentarios
Este método requiere una inicialización previa de la interfaz IAudioClient . Todas las llamadas a este método producirán un error AUDCLNT_E_NOT_INITIALIZED hasta que el cliente inicialice la secuencia de audio llamando correctamente al método IAudioClient::Initialize .
El método GetService admite las siguientes interfaces de servicio:
- IAudioCaptureClient
- IAudioClock
- IAudioRenderClient
- IAudioSessionControl
- IAudioStreamVolume
- IChannelAudioVolume
- IMFTrustedOutput
- ISimpleAudioVolume
Para obtener información sobre el uso de controladores de audio de confianza en entidades organizativas, vea Audio en modo de usuario protegido (PUMA).
Tenga en cuenta que la activación de IMFTrustedOutput a través de este mecanismo funciona independientemente de si el autor de la llamada se ejecuta en PMP. Sin embargo, si el autor de la llamada no se ejecuta en un proceso protegido (es decir, el autor de la llamada no está dentro del PMP de Media Foundation), es posible que el audio OTA no funcione en el PMP y la configuración de protección sea menos sólida.
Para obtener el identificador de interfaz de una interfaz de servicio, use el operador __uuidof . Por ejemplo, el identificador de interfaz de IAudioCaptureClient se define de la siguiente manera:
const IID IID_IAudioCaptureClient __uuidof(IAudioCaptureClient)
Para obtener información sobre el operador __uuidof, consulte la documentación de Windows SDK.
Para liberar el objeto IAudioClient y liberar todos sus recursos asociados, el cliente debe liberar todas las referencias a los objetos de servicio creados mediante una llamada a GetService, además de llamar a Release en la propia interfaz IAudioClient . El cliente debe liberar un servicio del mismo subproceso que libera el objeto IAudioClient .
Las interfaces IAudioSessionControl, IAudioStreamVolume, IChannelAudioVolume e ISimpleAudioVolume controlan y supervisan aspectos de las sesiones de audio y las secuencias en modo compartido. Estas interfaces no funcionan con secuencias en modo exclusivo.
Para obtener ejemplos de código que llaman al método GetService , consulte los temas siguientes:
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [aplicaciones de escritorio | aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | audioclient.h |
Consulte también
IAudioCaptureClient (interfaz)
IAudioSessionControl (interfaz)