Método IAudioSessionControl::UnregisterAudioSessionNotification (audiopolicy.h)
O método UnregisterAudioSessionNotification exclui um registro anterior do cliente para receber notificações.
Sintaxe
HRESULT UnregisterAudioSessionNotification(
[in] IAudioSessionEvents *NewNotifications
);
Parâmetros
[in] NewNotifications
Ponteiro para uma interface IAudioSessionEvents implementada pelo cliente. O cliente passou esse mesmo ponteiro de interface para o gerenciador de sessão em uma chamada anterior para o método IAudioSessionControl::RegisterAudioSessionNotification . Se o método UnregisterAudioSessionNotification for bem-sucedido, ele chamará o método Release na interface IAudioSessionEvents do cliente.
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.
Código de retorno | Descrição |
---|---|
|
O parâmetro NewNotifications é NULL. |
|
A interface especificada não foi registrada anteriormente pelo cliente ou já foi removida. |
Comentários
O cliente chama esse método quando não precisa mais receber notificações. O método UnregisterAudioSessionNotification remove o registro de uma interface IAudioSessionEvents que o cliente registrou anteriormente com o gerenciador de sessão chamando o método IAudioSessionControl::RegisterAudioSessionNotification .
Antes que o cliente libere sua referência final à interface IAudioSessionEvents , ele deve chamar UnregisterAudioSessionNotification para cancelar o registro da interface. Caso contrário, o aplicativo vazará os recursos mantidos pelos objetos IAudioSessionEvents e IAudioSessionControl . Observe que RegisterAudioSessionNotification chama o método IAudioSessionEvents::AddRef do cliente e UnregisterAudioSessionNotification chama o método IAudioSessionEvents::Release . Se o cliente errar liberando sua referência à interface IAudioSessionEvents antes de chamar UnregisterAudioSessionNotification, o gerenciador de sessão nunca liberará sua referência à interface IAudioSessionEvents . Por exemplo, uma implementação de IAudioSessionEvents mal projetada pode chamar UnregisterAudioSessionNotification do destruidor para o objeto IAudioSessionEvents . Nesse caso, o cliente não chamará UnregisterAudioSessionNotification até que o gerenciador de sessão libere sua referência à interface IAudioSessionEvents e o gerenciador de sessão não liberará sua referência à interface IAudioSessionEvents até que o cliente chame UnregisterAudioSessionNotification. Para obter mais informações sobre os métodos AddRef e Release , consulte a discussão sobre a interface IUnknown na documentação do SDK do Windows.
Para obter um exemplo de código que chama o método UnregisterAudioSessionNotification , consulte Eventos de áudio para aplicativos de áudio herdados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | audiopolicy.h |
Confira também
IAudioSessionControl Interface