Función ActivateAudioInterfaceAsync (mmdeviceapi.h)
Permite que las aplicaciones de la Tienda Windows accedan a interfaces del modelo de objetos componentes (COM) preexistentes en la familia de WASAPI.
Sintaxis
HRESULT ActivateAudioInterfaceAsync(
[in] LPCWSTR deviceInterfacePath,
[in] REFIID riid,
[in] PROPVARIANT *activationParams,
[in] IActivateAudioInterfaceCompletionHandler *completionHandler,
IActivateAudioInterfaceAsyncOperation **activationOperation
);
Parámetros
[in] deviceInterfacePath
Un identificador de interfaz de dispositivo para un dispositivo de audio. Normalmente, esto se recupera de un objeto
Los GUID DEVINTERFACE_AUDIO_CAPTURE y DEVINTERFACE_AUDIO_RENDER representan la captura de audio predeterminada y el dispositivo de representación, respectivamente. Llame a
Especifique AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK para activar la interfaz de audio para la captura de bucle invertido de proceso. Para obtener código de ejemplo que muestra el escenario de captura de bucle invertido de proceso, consulte el ejemplo de captura de la API de bucle invertido de aplicaciónde
[in] riid
IiD de una interfaz COM en la familia de WASAPI, como IAudioClient.
[in] activationParams
Parámetros de activación específicos de la interfaz. Para obtener más información, vea el parámetro pActivationParams en IMMDevice::Activate.
A partir de la compilación 20438 de Windows 10, puedes especificar AUDIOCLIENT_ACTIVATION_PARAMS para activar la interfaz para incluir o excluir secuencias de audio asociadas a un identificador de proceso especificado.
[in] completionHandler
Interfaz implementada por el autor de la llamada a la que llama Windows cuando el resultado del procedimiento de activación está disponible.
activationOperation
Devuelve una interfaz IActivateAudioInterfaceAsyncOperation que representa el funcionamiento asincrónico de activar la interfaz WASAPI solicitada.
Valor devuelto
La función devuelve un HRESULT. Entre los valores posibles se incluyen, entre otros, los de la tabla siguiente.
Código devuelto | Descripción |
---|---|
|
El objeto subyacente y la operación asincrónica se crearon correctamente. |
|
En las versiones de Windows anteriores a Windows 10, este error puede dar lugar a este error si se llama a la función desde un apartamento COM incorrecto o si el IActivateAudioInterfaceCompletionHandler no se implementa en un objeto ágil (agregando un serializador de subproceso libre). |
Observaciones
Esta función permite que las aplicaciones de la Tienda Windows activen determinadas interfaces WASAPI COM
Para muchas implementaciones, una aplicación debe llamar a esta función desde el subproceso principal de la interfaz de usuario para activar una interfaz COM en la familia wasAPI para que el sistema pueda mostrar un cuadro de diálogo al usuario. La aplicación pasa una interfaz COM de devolución de llamada IActivateAudioInterfaceCompletionHandler mediante completionHandler. Windows llama a un método en la interfaz IActivateAudioInterfaceCompletionHandler de la aplicación desde un subproceso de trabajo en com Multi-threaded Apartment (MTA) cuando los resultados de la activación están disponibles. A continuación, la aplicación puede llamar a un método en la interfaz IActivateAudioInterfaceAsyncOperation para recuperar el código de resultado y la interfaz WASAPI solicitada. Hay algunas activaciones que son explícitamente seguras y, por lo tanto, no requieren que se llame a esta función desde el subproceso principal de la interfaz de usuario. Estas activaciones explícitamente seguras incluyen:
- Llamar a
activateAudioInterfaceAsync con undeviceInterfacePath que especifica un dispositivo de representación de audio y unriid que especifica la interfazIAudioClient. - Llamar a activateAudioInterfaceAsync con un deviceInterfacePath que especifica un dispositivo de representación de audio y un riid que especifica la interfaz IAudioEndpointVolume.
- Llamar a ActivateAudioInterfaceAsync desde un servicio de sesión 0. Para obtener más información, vea Services.
Las aplicaciones no deben liberar el objeto que implementa el IActivateAudioInterfaceCompletionHandler hasta que se haya ejecutado la devolución de llamada del controlador de finalización.
se debe llamar a ActivateAudioInterfaceAsync en el subproceso principal de la interfaz de usuario para que se pueda mostrar el mensaje de consentimiento. Si no se puede mostrar el mensaje de consentimiento, el usuario no puede conceder acceso al dispositivo a la aplicación.
En versiones de Windows anteriores a Windows 10, se debe llamar a ActivateAudioInterfaceAsync en un subproceso en un com Single-Threaded Apartment (STA), al abrir un dispositivo para la captura de audio. El completionHandler
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 8 [aplicaciones de escritorio | Aplicaciones para UWP] |
servidor mínimo admitido | Windows Server 2012 [aplicaciones de escritorio | Aplicaciones para UWP] |
de la plataforma de destino de |
Windows |
encabezado de |
mmdeviceapi.h (include Mmdevapi.idl) |
biblioteca de |
Mmdevapi.lib |
DLL de |
Mmdevapi.dll |
irQL | No |
Consulte también
funciones de audio principales de