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