Antarmuka IAudioVolumeDuckNotification (audiopolicy.h)
Antarmuka IAudioVolumeDuckNotification digunakan oleh sistem untuk mengirim pemberitahuan tentang perubahan redaman aliran. Stream Attenuation, atau ducking, adalah fitur yang diperkenalkan di Windows 7, di mana sistem menyesuaikan volume aliran non-komunikasi saat aliran komunikasi baru dibuka. Untuk informasi selengkapnya tentang fitur ini, lihat Pengalaman Ducking Default.
Warisan
Antarmuka IAudioVolumeDuckNotification mewarisi dari antarmuka IUnknown . IAudioVolumeDuckNotification juga memiliki jenis anggota berikut:
Metode
Antarmuka IAudioVolumeDuckNotification memiliki metode ini.
IAudioVolumeDuckNotification::OnVolumeDuckNotification Metode OnVolumeDuckNotification mengirimkan pemberitahuan tentang peristiwa ducking sistem yang tertunda. |
IAudioVolumeDuckNotification::OnVolumeUnduckNotification Metode OnVolumeUnduckNotification mengirimkan pemberitahuan tentang peristiwa sistem yang tertunda yang tidak berfungsi. |
Keterangan
Jika aplikasi perlu menolak pengalaman peredaman sistem yang disediakan oleh sistem, aplikasi harus memanggil IAudioSessionControl2::SetDuckingPreference dan menentukan preferensi tersebut.
Tidak seperti antarmuka WASAPI lainnya, yang diimplementasikan oleh komponen sistem WASAPI, antarmuka IAudioVolumeDuckNotification diimplementasikan oleh aplikasi untuk memberikan perilaku peredaman aliran kustom. Untuk menerima pemberitahuan peristiwa, aplikasi meneruskan ke metode IAudioSessionManager2::RegisterDuckNotification penunjuk ke implementasi aplikasi IAudioVolumeDuckNotification.
Setelah aplikasi mendaftarkan antarmuka IAudioVolumeDuckNotification , manajer sesi memanggil implementasi IAudioVolumeDuckNotification ketika perlu mengirim pemberitahuan ducking. Aplikasi menerima pemberitahuan peristiwa dalam bentuk panggilan balik melalui metode antarmuka.
Ketika aplikasi tidak perlu lagi menerima pemberitahuan, aplikasi memanggil metode IAudioSessionManager2::UnregisterDuckNotification . Metode UnregisterDuckNotification menghapus pendaftaran antarmuka IAudioVolumeDuckNotification yang sebelumnya didaftarkan aplikasi.
Aplikasi tidak boleh mendaftarkan atau membatalkan pendaftaran panggilan balik pemberitahuan selama panggilan balik peristiwa.
Untuk informasi selengkapnya, lihat Pertimbangan Implementasi untuk Pemberitahuan Ducking.
Contoh
Contoh kode berikut menunjukkan implementasi sampel antarmuka IAudioVolumeDuckNotification .
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;
}
};
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | audiopolicy.h |