Compartir a través de


Método IAudioSessionControl::UnregisterAudioSessionNotification (audiopolicy.h)

El método UnregisterAudioSessionNotification elimina un registro anterior por parte del cliente para recibir notificaciones.

Sintaxis

HRESULT UnregisterAudioSessionNotification(
  [in] IAudioSessionEvents *NewNotifications
);

Parámetros

[in] NewNotifications

Puntero a una interfaz IAudioSessionEvents implementada por el cliente. El cliente pasó este mismo puntero de interfaz al administrador de sesiones en una llamada anterior al método IAudioSessionControl::RegisterAudioSessionNotification . Si el método UnregisterAudioSessionNotification se realiza correctamente, llama al método Release en la interfaz IAudioSessionEvents del cliente.

Valor devuelto

Si el método se realiza correctamente, devuelve S_OK. Si se produce un error, los códigos de retorno posibles incluyen, entre otros, los valores que se muestran en la tabla siguiente.

Código devuelto Descripción
E_POINTER
El parámetro NewNotifications es NULL.
E_NOTFOUND
El cliente no registró previamente la interfaz especificada o ya se ha quitado.

Comentarios

El cliente llama a este método cuando ya no necesita recibir notificaciones. El método UnregisterAudioSessionNotification quita el registro de una interfaz IAudioSessionEvents que el cliente registró anteriormente con el administrador de sesiones mediante una llamada al método IAudioSessionControl::RegisterAudioSessionNotification .

Antes de que el cliente libere su referencia final a la interfaz IAudioSessionEvents , debe llamar a UnregisterAudioSessionNotification para anular el registro de la interfaz. De lo contrario, la aplicación filtra los recursos contenidos en los objetos IAudioSessionEvents e IAudioSessionControl . Tenga en cuenta que RegisterAudioSessionNotification llama al método IAudioSessionEvents::AddRef del cliente y UnregisterAudioSessionNotification llama al método IAudioSessionEvents::Release . Si el cliente se equivoca liberando su referencia a la interfaz IAudioSessionEvents antes de llamar a UnregisterAudioSessionNotification, el administrador de sesiones nunca libera su referencia a la interfaz IAudioSessionEvents . Por ejemplo, una implementación de IAudioSessionEvents mal diseñada podría llamar a UnregisterAudioSessionNotification desde el destructor para el objeto IAudioSessionEvents . En este caso, el cliente no llamará a UnregisterAudioSessionNotification hasta que el administrador de sesiones libere su referencia a la interfaz IAudioSessionEvents y el administrador de sesiones no liberará su referencia a la interfaz IAudioSessionEvents hasta que el cliente llame a UnregisterAudioSessionNotification. Para obtener más información sobre los métodos AddRef y Release , consulte la explicación de la interfaz IUnknown en la documentación de Windows SDK.

Para obtener un ejemplo de código que llama al método UnregisterAudioSessionNotification , vea Eventos de audio para aplicaciones de audio heredadas.

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 audiopolicy.h

Consulte también

IAudioSessionControl (Interfaz)

IAudioSessionControl::RegisterAudioSessionNotification

IAudioSessionEvents (Interfaz)