前言¶
DeepSeek Harness 的桌面模式支持通过插件扩展界面。dsh-netease-island 是一个插件,在页面顶部居中显示一个类似苹果 Dynamic Island 的胶囊组件。它展示当前播放的封面、歌名、歌手与进度,并提供播放控制功能。该插件不调用网易云私有接口,数据来源为 Windows SMTC(System Media Transport Controls)。
核心功能¶
该插件主要解决在 DSH 桌面窗口中实时查看和操控网易云音乐播放状态的需求。
- 状态展示:在顶部居中显示胶囊,包含封面、歌名、歌手及播放进度。
- 播放控制:支持播放/暂停、上一首、下一首以及通过进度条跳转。
- 数据来源:直接读取 Windows 系统的媒体控件数据,不登录账号,不读取 Cookie,不访问私有接口。
- 交互逻辑:支持拖动位置并保存;无正在播放的会话时自动隐藏,不占用屏幕空间。
安装与启用¶
安装该插件需要使用 DSH 的命令行工具。
- 执行以下命令安装插件(推荐使用 GitHub 地址):
dsh plugin --profile desktop add github:yezisorft/dsh-netease-island
如果插件位于本地目录,也可以使用绝对路径安装:
dsh plugin --profile desktop add <本目录的绝对路径>
- 安装完成后必须重启 DeepSeek Harness。客户端注入表在宿主启动时采集一次,重启是加载注入行的唯一入口。
配置¶
在 profile 的 cordis.patch.yml 文件中,为该插件条目添加 config 配置项。不配置则使用默认值:
- id: dsh-netease-island
name: dsh-netease-island
config:
pollMs: 500 # 轮询间隔(毫秒),范围限制在 200 ~ 5000
appPatterns: # appId 子串匹配(忽略大小写)
- cloudmusic
- netease
- com.netease
appPatterns 也可以写成逗号分隔的字符串,例如:appPatterns: 'cloudmusic,netease'。
注意:
appPatterns里的非 ASCII 字符会被丢弃。这些片段会作为命令行参数传给powershell.exe,控制台代码页可能在传输前导致中文参数解析错误。
典型用法¶
- 收起态:平时显示为顶部居中的小胶囊。
- 展开交互:鼠标移上去展开。
- 播放控制:点击胶囊主体进行播放/暂停切换。
- 歌曲切换:展开后,点击左侧上一首,右侧下一首。
- 进度跳转:展开后,中间的进度条支持点击跳转。
- 位置调整:胶囊可以拖动,位置会被记住。双击胶囊(或拖到顶部)可恢复默认位置。
环境要求与依赖¶
该插件依赖 Windows 平台特性,具体要求如下:
| 项目 | 要求 |
|---|---|
| 系统 | Windows 10 / 11(依赖 WinRT 的 Windows.Media.Control) |
| PowerShell | Windows PowerShell 5.1(powershell.exe,不能使用 PowerShell 7 或 pwsh) |
| 播放器 | 必须向 SMTC 注册媒体会话的播放器 |
关于网易云音乐的兼容性:
官方版本的网易云音乐桌面客户端不注册 SMTC 会话,因此插件无法获取数据。需要配合 BetterNCM(客户端插件加载器)和 InfLink-rs(发布播放状态到 SMTC)使用,才能让挂件正常工作。
故障排查¶
挂件不出现时,按顺序确认以下几点:
- DSH 是否重启过:未重启不会加载注入行。
- 检查状态接口:访问
http://127.0.0.1:19387/dsh-netease/state.json。- 如果
bridge字段为down,检查 PowerShell 5.1 是否可用。 - 如果
bridge为up但没有active,说明系统当前没有媒体会话,请播放音乐。
- 如果
- 检查
notes字段:桥接进程会将 WinRT 异常写入notes,可用于排查网易云客户端暴露接口异常的问题。
许可与信息¶
- 许可协议:MIT
- 维护者:yezisorft
- 源码仓库:https://github.com/yezisorft/dsh-netease-island
- 插件目录:https://www.skillhub.cn/plugins/yezisorft/dsh-netease-island