Função ActivateAudioInterfaceAsync (mmdeviceapi.h)
Permite que os aplicativos da Windows Store acessem interfaces COM (modelo de objeto de componente) pré-existentes na família WASAPI.
Sintaxe
HRESULT ActivateAudioInterfaceAsync(
[in] LPCWSTR deviceInterfacePath,
[in] REFIID riid,
[in] PROPVARIANT *activationParams,
[in] IActivateAudioInterfaceCompletionHandler *completionHandler,
IActivateAudioInterfaceAsyncOperation **activationOperation
);
Parâmetros
[in] deviceInterfacePath
Uma ID da interface do dispositivo para um dispositivo de áudio. Normalmente, isso é recuperado de um objeto DeviceInformation ou um dos métodos da classe MediaDevice.
Os GUIDs DEVINTERFACE_AUDIO_CAPTURE e DEVINTERFACE_AUDIO_RENDER representam o dispositivo de renderização e captura de áudio padrão, respectivamente. Chame
Especifique AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK para ativar a interface de áudio para a captura de loopback do processo. Para obter um código de exemplo que demonstra o cenário de captura de loopback de processo, consulte o Exemplo de Captura de API de Loopback de Aplicativo.
[in] riid
A IID de uma interface COM na família de WASAPI, como IAudioClient.
[in] activationParams
Parâmetros de ativação específicos da interface. Para obter mais informações, consulte o parâmetro pActivationParams no IMMDevice::Activate.
A partir do Windows 10 Build 20438, você pode especificar AUDIOCLIENT_ACTIVATION_PARAMS para ativar a interface para incluir ou excluir fluxos de áudio associados a uma ID de processo especificada.
[in] completionHandler
Uma interface implementada pelo chamador que é chamada pelo Windows quando o resultado do procedimento de ativação está disponível.
activationOperation
Retorna uma interface IActivateAudioInterfaceAsyncOperation
Valor de retorno
A função retorna umHRESULT
Código de retorno | Descrição |
---|---|
|
O objeto subjacente e a operação assíncrona foram criados com êxito. |
|
Em versões do Windows anteriores ao Windows 10, esse erro poderá resultar se a função for chamada de um apartamento COM incorreto ou se o IActivateAudioInterfaceCompletionHandler não for implementado em um objeto agile (agregando um marshaler de thread livre). |
Observações
Essa função permite que os aplicativos da Windows Store ativem determinadas interfaces COM WASAPI depois de usar APIs do Windows Runtime no windows.devices e windows.media.devices namespaces para selecionar um dispositivo de áudio.
Para muitas implementações, um aplicativo deve chamar essa função do thread principal da interface do usuário para ativar uma interface COM no família de WASAPI para que o sistema possa mostrar uma caixa de diálogo para o usuário. O aplicativo passa uma interface COM IActivateAudioInterfaceCompletionHandler por meio de completionHandler. O Windows chama um método na interface de IActivateAudioInterfaceCompletionHandler
- Chamar
ActivateAudioInterfaceAsync com umdeviceInterfacePath que especifica um dispositivo de renderização de áudio e umriid que especifica a interface IAudioClient. - Chamar
ActivateAudioInterfaceAsync com umdeviceInterfacePath que especifica um dispositivo de renderização de áudio e umriid que especifica a interface IAudioEndpointVolume. - Chamar ActivateAudioInterfaceAsync de um serviço de sessão 0. Para obter mais informações, consulte Services.
Os aplicativos não devem liberar o objeto que implementa o IActivateAudioInterfaceCompletionHandler até que o retorno de chamada do manipulador de conclusão seja executado.
ActivateAudioInterfaceAsync deve ser chamado no thread principal da interface do usuário para que o prompt de consentimento possa ser mostrado. Se o prompt de consentimento não puder ser mostrado, o usuário não poderá conceder acesso ao dispositivo ao aplicativo.
Em versões do Windows anteriores ao Windows 10, ActivateAudioInterfaceAsync deve ser chamado em um thread em um STA (COM Single-Threaded Apartment) ao abrir um dispositivo para captura de áudio. O completionHandler que é passado para ActivateAudioInterfaceAsync precisa implementar IAgileObject para garantir que não haja deadlock quando o completionHandler for chamado do MTA. Caso contrário, ocorrerá um E_ILLEGAL_METHOD_CALL.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 8 [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | mmdeviceapi.h (include Mmdevapi.idl) |
biblioteca | Mmdevapi.lib |
de DLL |
Mmdevapi.dll |
IRQL | Não |