dsh-local-music-player:在 DSH Web UI 裏本地播放與管理歌單

前言

在 DSH 里長時間掛着面板寫代碼或跑任務時,常會希望背景音樂不另開應用、也不把音頻文件上傳到第三方。瀏覽器自帶的播放體驗往往和麪板割裂,歌單也難和當前工作區放在一起管理。dsh-local-music-player 是面向 DSH Web UI 的本地優先音樂播放器與歌單管理插件:音頻和歌單留在當前瀏覽器的 IndexedDB,通過左側欄入口進入完整播放器界面,並支持在切換 DSH 面板時通常繼續後臺播放。

下面介紹插件定位、能力邊界、安裝方式與日常使用,事實以倉庫 README 與 npm 包信息爲準。

這是什麼

維護者爲 XM-Zou,npm 包名爲 dsh-local-music-player,當前 README 標明已發佈版本爲 0.7.3,許可證 MIT。插件在 DSH 客戶端側以 Web 平臺腳本注入(platform: "web"),無構建步驟、無運行時依賴;要求宿主 DSH >= 0.2.1(engines.dsh 聲明),README 寫明已在 DSH 0.2.2-rc.1 的 Desktop / Web UI 上測試。

一句話定位:在 DSH 全局左側欄增加「音樂」入口,提供導入本地音頻、歌單分類、播放控制、搜索與 ZIP 備份恢復,數據不上傳、插件不發起網絡請求。

核心功能

入口與導入

  • 點擊全局左側欄「音樂」圖標進入播放器頁面。
  • 「導入音樂」選文件,或把音頻拖到頁面。
  • 「導入文件夾」:文件夾名自動成爲新歌單名,內部音頻一併導入;音樂庫已有曲目會複用,不重複導入。

元數據與列表展示

  • 讀取 ID3v2 標題與封面;不識別歌手和專輯。
  • 文件名含書名號《》時,優先用書名號內文字作歌名,號外文字作歌曲信息;無《》時用 ID3 標題或文件名。
  • 舊版導入的曲目可通過頂部「重新解析歌曲信息」按新規則更新,無需重新導入。
  • 列表顯示所屬歌單(無歌單顯示「未分類」),副標題顯示歌曲信息。

歌單與播放

  • 新建、重命名、刪除歌單;一曲可加入多個歌單;側欄歌單可拖動排序。
  • 置頂「未分類」歌單:未加入任何歌單的曲目自動歸入,且不可刪除。
  • 刪除歌單默認保留歌曲:僅在本歌單的進「未分類」,仍在他處的留在原歌單;也可選同時從音樂庫刪除,共享曲目刪除前會提示。
  • 播放/暫停、上下曲、進度、音量、隨機、順序/列表循環/單曲循環。
  • 切換 DSH 面板時通常會繼續播放;暫停、退出 DSH 或宿主掛起時停止。
  • 按歌名、歌曲信息或文件名過濾;最近導入優先顯示。
  • 使用 DSH 主題 token,亮/暗主題與窄窗口適配;界面中英雙語。

備份與存儲

  • 音頻 Blob 與歌單保存在瀏覽器 IndexedDB。
  • 頂部備份:導出爲 ZIP(含 audio/、covers/、playlists.json),或從 ZIP 合併恢復;已存在歌曲複用,同名歌單合併。導入兼容舊版 v1 備份。

安裝與啓用

npm 爲首選來源:dsh-local-music-player@0.7.3。若桌面端「插件」界面因鏡像返回 E500 安裝失敗,README 建議用 CLI 並顯式指定 registry.npmjs.org。市場條目可能略晚於 npm;市場裏版本不是 0.7.3 時可用 npm 命令安裝。

DSH Desktop 界面:打開 設置 → 插件,在安裝來源裏填寫:

dsh-local-music-player

DSH Web(CLI)(dsh.cmd 爲 Desktop 自帶 CLI 的完整路徑,按本機 DSH 安裝目錄修改):

& "D:\ruanjian\DSH\resources\runtime\cli\bin\dsh.cmd" plugin --profile web add dsh-local-music-player --registry=https://registry.npmjs.org

dsh 已在 PATH 時可簡寫:

dsh plugin --profile web add dsh-local-music-player --registry=https://registry.npmjs.org

DSH Desktop(CLI):

& "D:\ruanjian\DSH\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-local-music-player --registry=https://registry.npmjs.org

若曾用本地目錄鏈接安裝,先移除再裝:

& "D:\ruanjian\DSH\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop remove dsh-local-music-player
& "D:\ruanjian\DSH\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add dsh-local-music-player --registry=https://registry.npmjs.org

npm 未同步或網絡異常時,可用 GitHub 源碼安裝(README 給出的形式):

& "D:\ruanjian\DSH\resources\runtime\cli\bin\dsh.cmd" plugin --profile web add github:XM-Zou/dsh-local-music-player --registry=https://registry.npmjs.org
& "D:\ruanjian\DSH\resources\runtime\cli\bin\dsh.cmd" plugin --profile desktop add github:XM-Zou/dsh-local-music-player --registry=https://registry.npmjs.org

也可直接下載 Release 包:dsh-local-music-player-0.7.3.tgz(見 GitHub Releases v0.7.3)。

插件市場在 插件 → 發現(Discover) 搜索;社區市場頁:https://awesome-dsh-plugin.com/p/XM-Zou/dsh-local-music-player/。DSH 生態上插件獨立分發,與 DeepSeek / 幻方無官方從屬關係,安裝前宜自行查看源碼與 MIT 許可證。

典型用法

經過上面的步驟啓用後,可按 README 順序操作:

  1. 點擊左側欄「音樂」圖標。
  2. 點擊「導入音樂」,或將音頻拖到頁面。
  3. 需要整庫分文件夾入庫時,點「導入文件夾」。
  4. 新建歌單,在歌曲行點 + 加入一個或多個歌單。
  5. 點歌曲播放;底部欄調節進度、音量、隨機與循環模式。

備份:點頂部右側備份圖標,「導出音樂庫」得到 ZIP;「導入音樂庫」會合併到現有庫。ZIP 內多歌單共享的曲目會在各歌單文件夾各有一份副本,體積會變大;空歌單也會生成空文件夾。

數據、隱私與限制

  • 導入數據在當前 DSH 瀏覽器 origin 的 IndexedDB;清除站點數據、端口/origin 變化或換瀏覽器配置,可能導致庫不可見。
  • 插件無遙測;能否播放某格式取決於宿主 Chromium/Electron 解碼能力(README 列舉常見 MP3、FLAC、WAV、M4A/AAC、OGG、Opus)。
  • 已知限制:暫無雲同步;ZIP 備份不支持 ZIP64,單包超過 4 GB 無法導出;受瀏覽器存儲配額約束,超大庫可能導入失敗;庫不跨設備共享。

插件在已安裝的 DSH profile 對應客戶端環境中運行,權限與當前 DSH 進程/瀏覽器上下文一致;若對本地文件訪問範圍有要求,安裝前應閱讀倉庫源碼。

結尾

dsh-local-music-player 把本地聽音、歌單整理和 ZIP 遷移收進 DSH 左欄,適合希望在同一面板內後臺聽歌、且不接受音頻上雲的 DSH Web / Desktop 用戶。目錄與源碼:

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜