IAudioSessionEvents 接口是 Windows 音频会话事件处理的一部分,位于 Audiopolicy.h 头文件中。这个接口允许开发者实现一个事件处理器对象,以便接收与音频会话相关的事件通知。

以下是 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