一个监控麦克风占用状态的 ClassIsland 插件。
当你想知道「现在到底是哪个程序在用我的麦克风」时,MicWatch 会替你盯着。它只读取系统给出的麦克风占用状态,并把这一信息变成 ClassIsland 规则系统里可以用的条件——不会录制、不会保存、也不会上传任何声音。
- 监控指定麦克风 —— 在设置页里挑选你想盯着的那个麦克风,插件会持续监听它是否正在被其它程序占用。
- 暴露成 ClassIsland 规则 —— 注册一条名为「麦克风是否被使用」的规则,可以接到文本组件、提醒、自动化等任何依赖规则的地方。
- 指定设备 —— 支持在多麦克风环境下只关注其中一个(例如只盯外接领夹麦,忽略内置阵列)。
- 随启动自启 —— 开启「自动开启监控」后,ClassIsland 每次启动都会自动恢复对所选麦克风的监控。
- 匹配进程名(可选) —— 规则可以细化到「当 某个特定程序 正在使用麦克风时」才成立,方便做精准的条件触发。
| 项目 | 版本 |
|---|---|
| 操作系统 | Windows 10 1703(内部版本 15063)及以上 |
| ClassIsland | 2.0 及以上 |
| 运行环境 | 已随 ClassIsland 提供的 .NET 运行时 |
依赖 Windows Core Audio (WASAPI) 的音频会话机制来检测麦克风占用,因此仅支持 Windows 平台。
- 前往 Releases 下载
MicWatch.cipx。 - 在 ClassIsland 的「应用设置 → 插件」中拖入或选择该文件完成安装。
- 重启 ClassIsland 使插件生效。
安装完成后,打开 ClassIsland 的应用设置,找到 MicWatch 设置页:
- 从下拉列表中选择要监控的麦克风设备(列表为空时点击「刷新」重新枚举)。
- 点击「开启监控」开始监听;想停下时点「关闭监控」。
- 状态区会实时显示当前麦克风是否被占用,以及占用它的进程名。
- 勾选「自动开启监控」,下次 ClassIsland 启动时会自动用已选设备开始监控。
插件向 ClassIsland 注册了规则 麦克风是否被使用(id:micwatch.ismicinuse):
- 当所选麦克风正被任意程序占用时,规则成立。
- 若勾选规则设置中的「匹配进程名」并填写进程名,则仅在该进程占用麦克风时才成立。
常见玩法:
- 把规则接到文本组件,麦克风被占用时显示「🎙 麦克风使用中」;
- 接到自动化,麦克风突然被未知程序占用时弹提醒,防止误开麦。
除了上面的「规则」,MicWatch 还向 ClassIsland 的自动化提供了两个独立的触发器,可在自动化设置的「触发器」里选用:
| 触发器 | id | 触发时机 |
|---|---|---|
| 当麦克风被调用时 | micwatch.trigger.micstarted |
被监控的麦克风从「空闲」变为「被占用」的瞬间(上升沿) |
| 当麦克风关闭时 | micwatch.trigger.micstopped |
被监控的麦克风从「被占用」变为「空闲」的瞬间(下降沿) |
两者都是边沿触发:只在状态切换的那一刻触发一次,不会在麦克风持续使用中反复触发。配合自动化的「行动」(如显示提醒、运行程序、切换窗口位置等),即可实现例如:
- 麦克风一被打开,立刻弹提醒「麦克风已开启,注意隐私」;
- 麦克风关闭后,自动把窗口移回原位 / 关闭相关提示。
触发器基于设置页选定的那一个麦克风。请确保已开启监控(勾选「自动开启监控」或手动「开启监控」),否则状态不会变化、触发器也不会触发。
本插件只调用系统接口查询麦克风的占用状态,整个过程中:
- 不打开任何音频采集端点;
- 不读取、不缓存、不上传任何音频样本;
- 仅向本地 ClassIsland 进程提供「是否被占用 / 占用进程名」这一最小信息。
MicWatch 基于 Windows Core Audio (WASAPI) 的音频会话机制。当一个程序开始采集麦克风时,系统会在该音频端点设备上创建一个音频会话 (audio session)。插件通过 IAudioSessionManager2 枚举这些会话即可得知麦克风是否被占用、以及是哪个进程在用——这与 Windows 任务栏右上角的「麦克风使用中」指示器是同一套底层机制。
整个过程插件不会打开音频流、不读取任何音频数据,仅查询会话状态。为避免漏掉状态跳变,插件以 500ms 间隔轮询会话,并在上升/下降沿触发规则与自动化。
基于 .NET 8 与 ClassIsland.PluginSdk 2.0.0.2(对应 ClassIsland 2.0.x 运行时)。
git clone https://github.com/yty16/MicWatch.git
cd MicWatch/MicWatch
dotnet build -c Release构建完成后,插件包位于 cipx/MicWatch.cipx,可直接在 ClassIsland 中安装。
仓库:https://github.com/yty16/MicWatch
欢迎提 Issue 与 PR。
本插件基于 流焰xwx 的 CameraActivityMonitor 修改而来,将其「摄像头占用监控」的实现思路适配为「麦克风占用监控」。原项目以 AGPLv3 许可证发布。