IAudioSessionNotification 接口是 Windows 音频会话通知的一部分,位于 Audiopolicy.h 头文件中。这个接口定义了用于接收音频会话事件通知的方法。

以下是 IAudioSessionNotification 接口的定义:
// 头文件
#include <Audiopolicy.h>

// IAudioSessionNotification 接口定义
DECLARE_INTERFACE_(IAudioSessionNotification, IUnknown)
{
    STDMETHOD (OnSessionCreated) (THIS_
        _In_ IAudioSessionControl *NewSession) PURE;
};

这个接口只包含一个方法:

  •  OnSessionCreated:当新的音频会话被创建时调用。参数 NewSession 是一个指向 IAudioSessionControl 接口的指针,允许应用程序与新创建的音频会话进行交互。


开发者可以实现这个接口,然后通过 RegisterSessionNotification 方法注册为音频会话管理器的通知对象。当有新的音频会话被创建时,系统会调用实现了 OnSessionCreated 方法的对象,以便应用程序能够得知有关新会话的信息。

以下是一个示例实现的简单代码框架:
class MyAudioSessionNotification : public IAudioSessionNotification
{
public:
    STDMETHOD_(ULONG, AddRef)() { return 1; }
    STDMETHOD_(ULONG, Release)() { return 0; }

    STDMETHOD(QueryInterface)(REFIID riid, void** ppv)
    {
        if (riid == __uuidof(IUnknown) || riid == __uuidof(IAudioSessionNotification))
        {
            *ppv = this;
            return S_OK;
        }
        else
        {
            *ppv = nullptr;
            return E_NOINTERFACE;
        }
    }

    STDMETHOD(OnSessionCreated)(IAudioSessionControl* NewSession)
    {
        // 处理新音频会话的逻辑
        // ...
        return S_OK;
    }
};

这个实现中,OnSessionCreated 方法被调用时,开发者可以在其中处理有关新创建的音频会话的逻辑。




转载请注明出处:http://www.zyzy.cn/article/detail/23918/Win32 API/Audiopolicy.h/IAudioSessionNotification