IAudioSessionManager2::RegisterSessionNotification 方法 (audiopolicy.h)

RegisterSessionNotification 方法注册应用程序,以在创建会话时接收通知。

语法

HRESULT RegisterSessionNotification(
  IAudioSessionNotification *SessionNotification
);

参数

SessionNotification

指向 应用程序实现的 IAudioSessionNotification 接口的指针。 如果方法调用成功,它将在应用程序的 IAudioSessionNotification 接口上调用 AddRef 方法。

返回值

如果该方法成功,则它会返回 S_OK。 如果失败,可能的返回代码包括但不限于下表中显示的值。

返回值 说明
E_POINTER
SessionNotificationNULL
E_OUTOFMEMORY
由于内存不足,无法创建内部对象。

注解

应用程序可以通过 IAudioSessionNotification 接口的方法注册以在创建会话时接收通知。 应用程序实现 IAudioSessionNotification 接口。 创建会话时,此接口中定义的方法接收来自系统的回调。 有关演示如何实现此接口的示例代码,请参阅

IAudioSessionNotification 接口

为了开始接收通知,应用程序调用 IAudioSessionManager2::RegisterSessionNotification 方法来注册其 IAudioSessionNotification 接口。 当应用程序不再需要通知时,它会调用 IAudioSessionManager2::UnregisterSessionNotification 方法来删除注册。

重要

必须调用 IAudioSessionEnumerator::GetCount 才能开始接收通知。 会话枚举 API 放弃新的会话通知,直到应用程序首次检索到现有会话的列表。 这是为了防止在使用会话 API 的应用程序启动时会话通知到达时可能发生的争用条件。 调用 GetCount 会触发枚举 API 开始发送会话通知。

注意 确保在非 UI 线程中调用 CoInitializeEx(NULL, COINIT_MULTITHREADED) ,确保应用程序使用多线程单元 (MTA) 模型初始化 COM。 如果未初始化 MTA,则应用程序不会从会话管理器接收会话通知。 运行应用程序用户界面的线程应初始化单元线程模型。
 

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 audiopolicy.h

另请参阅

IAudioSessionManager2