跳转到内容
⌂ 回到首页

官方示例与代码片段

SDK 仓库 examples/ 分两类:完整可 check 的项目可复制进你项目的脚本片段。索引 → 创意工坊 SDK

Terminal window
node .\bin\echo-workshop-sdk.mjs example list
node .\bin\echo-workshop-sdk.mjs example list --json

拷贝完整项目到空目录:

Terminal window
node .\bin\echo-workshop-sdk.mjs example hello-plugin .\my-hello
node .\bin\echo-workshop-sdk.mjs example minimal-theme .\my-theme

init / example 只接受空目录;有残留文件会报 Target directory must be empty

示例类型说明
hello-plugin插件一条命令 + playback:read插件教程 入门
minimal-theme主题最少字段 colors 档,主题教程 入门
stylesheet-theme主题整包 CSS,需 ECHO 26.8.20+
retro-modern-ui-runtime主题完整 runtime UI,见 Runtime UI
lyrics-cinema-scene歌词影院台 + 自备播放控制
visualizer-radial可视化径向频谱
dsp-vocalDSP人声向 31 段 EQ
locale-wenyan语言包文言文 locale

每个示例目录里有 README.md 和可跑的 check / test 命令。

插件片段(复制进你的 src/plugin.js

Section titled “插件片段(复制进你的 src/plugin.js)”

这些不是完整项目;从 examples/<name>/plugin.js 复制逻辑,并在 manifest 里声明对应的 contributespermissions

片段目录用途典型权限 / 贡献
lyrics-source歌词候选 + echo.lyrics.get()lyrics:provide, lyrics:read
metadata-provider元数据/封面候选metadata / cover provider 声明
network-source分页 catalog + resolve 直链sources:provide, network:request, networkHosts
listen-together一起听上传 API 2playback:share, networkHosts
author-agent作者自定义 Agent 处理agent:runtime
complete-ui-theme插件导出 主题预设到「我的主题」非 Workshop 主题包,是 import 片段

复制后务必:

Terminal window
npm run add -- --permission <缺的权限>
npm run check

比翻 examples 更快的方式:

Terminal window
node .\bin\echo-workshop-sdk.mjs snippet list
node .\bin\echo-workshop-sdk.mjs snippet plugin-command
node .\bin\echo-workshop-sdk.mjs snippet lyrics-provider
node .\bin\echo-workshop-sdk.mjs snippet ui-runtime-init

生成项目还带 .vscode/echo-workshop.code-snippets — 在 src/plugin.js 或 JSON 里输入 echo- 前缀展开。

snippet 名作用
plugin-command注册命令 + 读播放状态
plugin-storage沙箱 JSON 存储
plugin-settings读 manifest 里声明的设置项
lyrics-provider歌词候选 provider
source-provider-search音源 search/resolve 骨架
network-get声明域名后的 GET
ui-runtime-initRuntime 主题桥接初始化
theme-colorscolors 档 tone 块

每条 snippet 输出都会标注 requires 权限/capability 和应粘贴的 target 文件。

你想…
按效果一键脚手架init --recipe <id>(见 索引 · Recipe 对照表
学习最小完整结构example hello-plugin / example minimal-theme
学习某一高级能力复制 examples/ 片段 + snippet
在已有项目上叠加add / set / scaffold / next

test / dev 里的 mock host:

  • 会 enforce 权限与 networkHosts(这是好事)
  • 不会真的访问外网(生产才会,且仍受 capability 限制)
  • 不能证明 Steam 客户端下载行为

所以示例里常用 example.invalid 域名;换成你的域名时记得写进 networkHosts

metadata、歌词源、一起听等片段说明见 插件教程 · 进阶能力