libmmdevice_plugin.dll 是 Windows Core Audio 体系中与 MMDevice(Multimedia Device)子系统对接的插件式动态链接库,Windows 本身并不内置该文件,它通常随 Chromium、Electron、WebRTC、直播推流、录屏及在线会议类软件一同分发,充当跨平台媒体框架在 Windows 上的音频设备适配层。
① 端点设备枚举:通过 COM 封装 IMMDeviceEnumerator、IMMDeviceCollection,向上层暴露统一的"输入/输出设备列表"接口,屏蔽 CoCreateInstance、引用计数等细节。
② 默认设备与角色查询:调用 GetDefaultAudioEndpoint,区分 eConsole、eMultimedia、eCommunications 三类角色,决定通话、影音、系统提示音各自走哪只扬声器或麦克风。
③ 状态与热插拔通知:实现 IMMNotificationClient 回调,监听插入耳机、拔掉 USB 麦克风、设备被禁用等事件,并把变更实时推送给上层业务模块。
④ 属性与 WASAPI 协同:借助 IPropertyStore 读取 PKEY_Device_FriendlyName、PKEY_AudioEndpoint_FormFactor 等属性,并配合 IAudioClient 完成共享模式或独占模式的音频流初始化。