前言¶
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