IAudioSessionManager2::RegisterSessionNotification 方法 (audiopolicy.h)
RegisterSessionNotification 方法注册应用程序,以在创建会话时接收通知。
语法
HRESULT RegisterSessionNotification(
IAudioSessionNotification *SessionNotification
);
参数
SessionNotification
指向 应用程序实现的 IAudioSessionNotification 接口的指针。 如果方法调用成功,它将在应用程序的 IAudioSessionNotification 接口上调用 AddRef 方法。
返回值
如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。
返回值 | 说明 |
---|---|
|
SessionNotification 为 NULL。 |
|
由于内存不足,无法创建内部对象。 |
注解
应用程序可以通过 IAudioSessionNotification 接口的方法注册以在创建会话时接收通知。 应用程序实现 IAudioSessionNotification 接口。 创建会话时,此接口中定义的方法接收来自系统的回调。 有关演示如何实现此接口的示例代码,请参阅
为了开始接收通知,应用程序调用 IAudioSessionManager2::RegisterSessionNotification 方法来注册其 IAudioSessionNotification 接口。 当应用程序不再需要通知时,它会调用 IAudioSessionManager2::UnregisterSessionNotification 方法来删除注册。
重要
必须调用 IAudioSessionEnumerator::GetCount 才能开始接收通知。 会话枚举 API 放弃新的会话通知,直到应用程序首次检索到现有会话的列表。 这是为了防止在使用会话 API 的应用程序启动时会话通知到达时可能发生的争用条件。 调用 GetCount 会触发枚举 API 开始发送会话通知。
CoInitializeEx(NULL, COINIT_MULTITHREADED)
,确保应用程序使用多线程单元 (MTA) 模型初始化 COM。 如果未初始化 MTA,则应用程序不会从会话管理器接收会话通知。
运行应用程序用户界面的线程应初始化单元线程模型。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | audiopolicy.h |