Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die IAudioVolumeDuckNotification-Schnittstelle wird vom System verwendet, um Benachrichtigungen über Änderungen der Streamdämpfung zu senden. Stream Dämpfung oder Ducking ist ein Feature, das in Windows 7 eingeführt wurde, bei dem das System die Lautstärke eines Nicht-Kommunikationsdatenstroms anpasst, wenn ein neuer Kommunikationsstream geöffnet wird. Weitere Informationen zu diesem Feature finden Sie unter Standard-Ducking-Erfahrung.
Vererbung
Die IAudioVolumeDuckNotification-Schnittstelle erbt von der IUnknown-Schnittstelle . IAudioVolumeDuckNotification verfügt auch über folgende Arten von Membern:
Methoden
Die IAudioVolumeDuckNotification-Schnittstelle verfügt über diese Methoden.
|
IAudioVolumeDuckNotification::OnVolumeDuckNotification Die OnVolumeDuckNotification-Methode sendet eine Benachrichtigung über ein ausstehendes Systementenkungsereignis. |
|
IAudioVolumeDuckNotification::OnVolumeUnduckNotification Die OnVolumeUnduckNotification-Methode sendet eine Benachrichtigung über ein ausstehendes System-Unducking-Ereignis. |
Hinweise
Wenn eine Anwendung die vom System bereitgestellte Systemabschwächungserfahrung deaktivieren muss, muss sie IAudioSessionControl2::SetDuckingPreference aufrufen und diese Einstellung angeben.
Im Gegensatz zu den anderen WASAPI-Schnittstellen, die von der WASAPI-Systemkomponente implementiert werden, wird die IAudioVolumeDuckNotification-Schnittstelle von der Anwendung implementiert, um benutzerdefiniertes Streamdämpfungsverhalten bereitzustellen. Zum Empfangen von Ereignisbenachrichtigungen übergibt die Anwendung einen Zeiger auf die Implementierung von IAudioVolumeDuckDuckNotification an die IAudioSessionManager2::RegisterDuckNotification-Methode.
Nachdem die Anwendung ihre IAudioVolumeDuckNotification-Schnittstelle registriert hat, ruft der Sitzungs-Manager die IAudioVolumeDuckNotification-Implementierung auf, wenn ducking-Benachrichtigungen gesendet werden müssen. Die Anwendung empfängt Ereignisbenachrichtigungen in Form von Rückrufen über die Methoden der Schnittstelle.
Wenn die Anwendung keine Benachrichtigungen mehr empfangen muss, ruft sie die IAudioSessionManager2::UnregisterDuckNotification-Methode auf. Die UnregisterDuckNotification-Methode entfernt die Registrierung einer IAudioVolumeDuckNotification-Schnittstelle , die die Anwendung zuvor registriert hat.
Die Anwendung darf Benachrichtigungsrückrufe während eines Ereignisrückrufs nicht registrieren oder aufheben.
Weitere Informationen finden Sie unter Implementierungsüberlegungen für Ducking-Benachrichtigungen.
Beispiele
Der folgende Beispielcode zeigt eine Beispielimplementierung der IAudioVolumeDuckNotification-Schnittstelle .
class CDuckNotification : public IAudioVolumeDuckNotification
{
LONG _Cref;
HWND m_hwndMain;
CDuckNotification (HWND hWnd) :
_Cref(1),
m_hwndMain (hWnd)
{}
HRESULT OnVolumeDuckNotification (LPCWSTR SessionID, UINT32 CommunicationSessionCount)
{
PostMessage(m_hwndMain, WM_VOLUME_DUCK, 0, 0);
return S_OK;
}
HRESULT OnVolumeUnduckNotification (LPCWSTR SessionID)
{
PostMessage(m_hwndMain, WM_VOLUME_UNDUCK, 0, 0);
return S_OK;
}
protected:
~CDuckNotification() {}
public:
HRESULT QueryInterface (REFIID Iid, void** ReturnValue)
{
if (ReturnValue == NULL)
{
return E_POINTER;
}
*ReturnValue = NULL;
if (iid == IID_IUnknown)
{
*ReturnValue = static_cast<IUnknown *>(static_cast<IAudioVolumeDuckNotification *>(this));
AddRef();
}
else if (iid == __uuidof(IAudioVolumeDuckNotification))
{
*ReturnValue = static_cast<IAudioVolumeDuckNotification *>(this);
AddRef();
}
else
{
return E_NOINTERFACE;
}
return S_OK;
}
ULONG AddRef()
{
return InterlockedIncrement(&_Cref);
}
ULONG Release()
{
LONG ref = InterlockedDecrement(&_Cref);
if (ref == 0)
{
delete this;
}
return 0;
}
};
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
| Zielplattform | Windows |
| Kopfzeile | audiopolicy.h |