Share via


Método IAudioSessionManager2::RegisterDuckNotification (audiopolicy.h)

O método RegisterDuckNotification registra o aplicativo com o gerenciador de sessão para receber notificações de redução.

Sintaxe

HRESULT RegisterDuckNotification(
  LPCWSTR                      sessionID,
  IAudioVolumeDuckNotification *duckNotification
);

Parâmetros

sessionID

Ponteiro para uma cadeia de caracteres terminada em nulo que contém um identificador de instância de sessão. Os aplicativos que estão reproduzindo um fluxo de mídia e desejam fornecer atenuação de fluxo personalizado ou comportamento de esquiva, passam seu próprio identificador de instância de sessão. Para obter mais informações, consulte Comentários.

Outros aplicativos que não desejam alterar seus fluxos, mas desejam obter todas as notificações de redução devem passar NULL.

duckNotification

Ponteiro para a implementação do aplicativo da interface IAudioVolumeDuckNotification . A implementação é chamada quando os eventos de ducking são gerados pelo sistema de áudio e as notificações são enviadas para os aplicativos registrados.

Retornar valor

Se o método for bem-sucedido, retornará S_OK. Se falhar, os códigos de retorno possíveis incluem, mas não se limitam a, os valores mostrados na tabela a seguir.

Valor retornado Descrição
E_POINTER
duckNotification é NULL.
E_OUTOFMEMORY
O objeto interno não pôde ser criado devido à memória insuficiente.

Comentários

Stream Atenuação ou esquivamento é um novo recurso no Windows 7. Um aplicativo que reproduz um fluxo de mídia pode fazer com que o fluxo se comporte de forma diferente quando um novo fluxo de comunicação é aberto no dispositivo de comunicação padrão. Por exemplo, o fluxo de mídia original pode ser pausado enquanto o novo fluxo de comunicação está aberto. Para fornecer essa implementação personalizada para atenuação de fluxo, o aplicativo pode recusar a experiência de atenuação de fluxo padrão chamando IAudioSessionControl::SetDuckingPreference e, em seguida, registrar-se para receber notificações quando ocorrerem eventos de sessão. Para atenuação de fluxo, um evento de sessão é gerado pelo sistema quando um fluxo de comunicação é aberto ou fechado no dispositivo de comunicação padrão. Para obter mais informações sobre esse recurso, consulte Obtendo eventos de ducking.

Para começar a receber notificações, o aplicativo chama o método RegisterDuckNotification para registrar sua interface IAudioVolumeDuckNotification com o gerenciador de sessão. Quando o aplicativo não requer mais notificações, ele chama o método IAudioSessionManager2::UnregisterDuckNotification para excluir o registro.

O aplicativo recebe notificações sobre os eventos de esquiva por meio dos métodos da interface IAudioVolumeDuckNotification . O aplicativo implementa IAudioVolumeDuckNotification. Depois que a chamada de registro for bem-sucedida, o sistema chamará os métodos dessa interface quando ocorrerem eventos de sessão.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho audiopolicy.h

Confira também

IAudioSessionManager2

Usando um dispositivo de comunicação