IAudioSessionEvents::OnSessionDisconnected 方法 (audiopolicy.h)

OnSessionDisconnected 方法通知客户端音频会话已断开连接。

语法

HRESULT OnSessionDisconnected(
  [in] AudioSessionDisconnectReason DisconnectReason
);

参数

[in] DisconnectReason

音频会话断开连接的原因。 调用方将此参数设置为下表中显示的 AudioSessionDisconnectReason 枚举值之一。

说明
DisconnectReasonDeviceRemoval 用户删除了音频终结点设备。
DisconnectReasonServerShutdown Windows 音频服务已停止。
DisconnectReasonFormatChanged 音频会话连接到的设备流格式已更改。
DisconnectReasonSessionLogoff 用户注销了Windows 终端服务 (WTS) 运行音频会话的会话。
DisconnectReasonSessionDisconnected 正在运行音频会话的 WTS 会话已断开连接。
DisconnectReasonExclusiveModeOverride (共享模式) 音频会话已断开连接,使音频终结点设备可用于独占模式连接。
 

有关 WTS 会话的详细信息,请参阅Windows SDK文档。

返回值

如果该方法成功,则它会返回 S_OK。 如果该方法失败,则会返回错误代码。

注解

断开会话连接时,会话管理器将关闭属于该会话的流,并使这些流上服务的所有未完成请求失效。 客户端应通过释放对闭合流的 IAudioClient 接口的所有引用,并释放它之前通过调用 IAudioClient::GetService 方法获取的服务接口的所有引用来响应断开连接。

断开连接后,WASAPI 接口中绑定到断开连接的会话中关闭的流的许多方法AUDCLNT_E_DEVICE_INVALIDATED (返回错误代码,例如,请参阅 IAudioClient::GetCurrentPadding) 。 有关从此错误中恢复的信息,请参阅 从 Invalid-Device 错误中恢复

如果 Windows 音频服务意外终止,则它没有机会通知客户端它正在关闭。 在这种情况下,客户端在调用 IAudioClient::GetCurrentPadding 等方法时会发现服务不再运行并失败并出现错误代码AUDCLNT_E_SERVICE_NOT_RUNNING时,该服务已停止。

客户端无法生成会话断开连接事件。 系统始终是此类事件的源。 因此,与其他一些 IAudioSessionEvents 方法不同,此方法没有上下文参数。

有关实现 IAudioSessionEvents 接口中方法的代码示例,请参阅 音频会话事件

要求

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

另请参阅

IAudioClient 接口

IAudioClient::GetService

IAudioSessionEvents 接口