以下是 IAudioSessionEvents 接口的定义:
// 头文件
#include <Audiopolicy.h>
// IAudioSessionEvents 接口定义
DECLARE_INTERFACE_(IAudioSessionEvents, IUnknown)
{
STDMETHOD (OnDisplayNameChanged) (THIS_
_In_ LPCWSTR NewDisplayName,
_In_opt_ LPCGUID EventContext) PURE;
STDMETHOD (OnIconPathChanged) (THIS_
_In_ LPCWSTR NewIconPath,
_In_opt_ LPCGUID EventContext) PURE;
STDMETHOD (OnSimpleVolumeChanged) (THIS_
_In_ float NewVolume,
_In_ BOOL NewMute,
_In_opt_ LPCGUID EventContext) PURE;
STDMETHOD (OnChannelVolumeChanged) (THIS_
_In_ DWORD ChannelCount,
_In_reads_(ChannelCount) float NewChannelVolumeArray[],
_In_ DWORD ChangedChannel,
_In_opt_ LPCGUID EventContext) PURE;
STDMETHOD (OnGroupingParamChanged) (THIS_
_In_opt_ LPCGUID NewGroupingParam,
_In_opt_ LPCGUID EventContext) PURE;
STDMETHOD (OnStateChanged) (THIS_
_In_ AUDIO_SESSION_STATE NewState) PURE;
STDMETHOD (OnSessionDisconnected) (THIS_
_In_ AUDIO_SESSION_DISCONNECT_REASON DisconnectReason) PURE;
};
这个接口定义了多个事件处理方法,每个方法对应于音频会话的不同事件。例如:
- OnDisplayNameChanged:当音频会话的显示名称发生变化时调用。
- OnIconPathChanged:当音频会话的图标路径发生变化时调用。
- OnSimpleVolumeChanged:当音频会话的简单音量(单一音量值和静音状态)发生变化时调用。
- OnChannelVolumeChanged:当音频会话的通道音量发生变化时调用。
- OnGroupingParamChanged:当音频会话的分组参数发生变化时调用。
- OnStateChanged:当音频会话的状态发生变化时调用。
- OnSessionDisconnected:当音频会话断开连接时调用。
开发者可以实现这个接口,然后注册为音频会话的事件处理器,以便在相应的事件发生时得到通知。
转载请注明出处:http://www.zyzy.cn/article/detail/23916/Win32 API/Audiopolicy.h/IAudioSessionEvents