DEVICE_STATE_XXX常量

DEVICE_STATE_XXX常量指示音频终结点设备的当前状态。

常量/值 描述
DEVICE_STATE_ACTIVE
0x00000001
音频终结点设备处于活动状态。 也就是说,连接到终结点设备的音频适配器存在并已启用。 此外,如果终结点设备插入适配器上的插孔,则终结点设备已插入。
DEVICE_STATE_DISABLED
0x00000002
音频终结点设备已禁用。 用户已在 Windows 多媒体控制面板中禁用设备,Mmsys.cpl。 有关详细信息,请参阅“备注”。
DEVICE_STATE_NOTPRESENT
0x00000004
音频终结点设备不存在,因为连接到终结点设备的音频适配器已从系统中删除,或者用户在设备管理器中禁用了适配器设备。
DEVICE_STATE_UNPLUGGED
0x00000008
音频终结点设备已拔出。 包含终结点设备的插孔的音频适配器存在并已启用,但终结点设备未插入插孔。 只有具有插孔存在检测的设备才能处于此状态。 有关插孔状态检测的详细信息,请参阅 音频终结点设备
DEVICE_STATEMASK_ALL
0x0000000F
包括处于活动、禁用、不存在和拔出的所有状态的音频终结点设备。

备注

IMMDeviceEnumerator::EnumAudioEndpointsIMMDevice::GetStateIMMNotificationClient::OnDeviceStateChanged 方法使用DEVICE_STATE_XXX常量。 这些方法使客户端能够获取有关处于DEVICE_STATE_XXX常量表示的任何状态的终结点设备的信息。

但是,客户端可以打开流 (例如,获取设备的 IAudioClient 接口,) 处于DEVICE_STATE_ACTIVE状态的设备上。

Windows 多媒体控制面板Mmsys.cpl显示系统中的音频终结点设备。 在Mmsys.cpl禁用设备会从更高级别音频 API 中的设备发现机制中隐藏设备,但不会使客户端在禁用设备之前实例化的任何流对象失效。 例如,如果用户在Mmsys.cpl中禁用流时在设备上播放该流,流将继续不间断地播放。

相比之下,在 设备管理器中禁用设备会有效地从系统中删除该设备。

若要使用 Mmsys.cpl 查看呈现设备,请打开命令提示符窗口并输入以下命令:

control mmsys.cpl,0

若要查看捕获设备,请输入以下命令:

control mmsys.cpl,1

或者,可以通过右键单击位于任务栏右侧的通知区域中的扬声器图标,然后选择“ 播放 设备”或“录制设备”来查看Mmsys.cpl中的呈现 设备或捕获设备

Mmsys.cpl始终显示处于DEVICE_STATE_ACTIVE状态的终结点设备。 此外,还可以将其配置为显示已禁用和断开连接的设备。

若要查看处于DEVICE_STATE_DISABLED和DEVICE_STATE_NOTPRESENT状态的终结点设备,请在Mmsys.cpl窗口中右键单击,然后选择“ 显示禁用的设备” 选项。

若要查看处于DEVICE_STATE_UNPLUGGED状态的终结点设备,请在Mmsys.cpl窗口中右键单击,然后选择“ 显示断开连接的设备” 选项。

若要仅查看处于DEVICE_STATE_ACTIVE状态的终结点设备,请取消选择“ 显示禁用的设备” 和“ 显示断开连接的设备” 选项。

若要在 Mmsys.cpl 中启用或禁用终结点设备,请单击“ 播放 ”或“ 录制”,具体取决于设备是播放设备还是录制设备。 接下来,选择设备并单击“ 属性”。 在 “属性” 窗口中的“ 设备使用情况”旁边,选择“ 使用此设备 (启用) ”或“ 不要使用此设备 (禁用)

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Mmdeviceapi.h

另请参阅

核心音频常量

IMMDevice::GetState

IMMDeviceEnumerator 接口

IMMDeviceEnumerator::EnumAudioEndpoints

IMMNotificationClient::OnDeviceStateChanged