使用 Webview 实现,通过 Web Audio API 播放音乐,不依赖命令行播放器,灵感来自 kangping/video
- 发现音乐 (歌单 / 新歌 / 排行榜)
- 搜索 (单曲 / 歌手 / 专辑 / 歌单)
- 用户登录 (手机号 / 邮箱)
- 用户收藏 (歌单 / 歌手 / 专辑)
- 每日歌曲推荐 / 推荐歌单 / 私人 FM
- 喜欢音乐 / 收藏音乐
- 播放模式切换 / 音量调节
- 逐行歌词
- 热门评论
- 快捷键支持
- 听歌记录 (不确定有效)
- 无海外限制
VS Code for Windows 自 1.31.0 起自带完整的 ffmpeg 动态链接库 (可能是 bug),无需替换;macOS 与 Linux 平台仍需替换
VS Code 使用的 Electron 版本不包含 ffmpeg,需替换自带的 ffmpeg 动态链接库才能正常播放 (每次更新 VS Code 都需重新替换)
Manual Replacement
通过 VS Code 版本在 https://raw.githubusercontent.com/Microsoft/vscode/%version%/.yarnrc
查看其使用的 Electron 版本,并于 https://github.com/electron/electron/releases/tag/%version%
下载对应的 Electron 完整版本进行替换
下载 electron-%version%-win32-%arch%.zip
替换 ./ffmpeg.dll
下载 electron-%version%-darwin-x64.zip
替换 ./Electron.app/Contents/Frameworks/Electron\ Framework.framework/Libraries/libffmpeg.dylib
下载 electron-%version%-linux-%arch%.zip
替换 ./libffmpeg.so
Automatic Replacement
使用 Python 脚本替换 (Python 2/3 均可,绝大部分发行版自带环境)
默认安装位置下 Linux 和 Windows 需要以管理员身份运行,macOS 不需要
Invoke-RestMethod https://gist.githubusercontent.com/nondanee/f157bbbccecfe29e48d87273cd02e213/raw | python
curl https://gist.githubusercontent.com/nondanee/f157bbbccecfe29e48d87273cd02e213/raw | python
如果 VS Code 使用默认配置安装,脚本会自动寻找并替换,若自定义了安装位置,请自行修改 installation
按下 F1 或 Ctrl Shift P 打开命令面板
输入命令前缀 网易云音乐
或 NeteaseMusic
开始探索 :D
Command | Key |
---|---|
静音 / 恢复 | Alt M |
上一首 | Alt , |
下一首 | Alt . |
播放 / 暂停 | Alt / |
- i18n
- setting
- shortcuts
- exit point
还没做...
Include if your extension adds any VS Code settings through the contributes.configuration
extension point.
For example:
This extension contributes the following settings:
myExtension.enable
: enable/disable this extensionmyExtension.thing
: set toblah
to do something
- 由于未找到支持播放在线音乐、能够正常遥控又足够小巧的命令行播放器而借助 Webview 实现 (mpg123 在 windows 下的控制有 bug)
- 暂不支持分页 (组件的交互限制)
- 图标不合适 (等 VS Code 增加更多图标支持)
- 列表对齐可能有问题 (不同字体下字符宽度不等)
- Webview 标签无法隐藏,使用时请不要关闭标签
Webview API 限制只在前台可见才能接收 postMessage 消息,需要通信时插件会自动切换到 Webview 再复原 Editor,标签切换不可见但会引起编辑器滚动条闪动 (不影响输入)自 1.31.0 开始 reveal 后 postMessage 会导致可见的切换延迟,已改用 WebSocket 实现双向通信- 1.31.0 升级使用 Electron 3.x,受制于 Chrome 66 内核的 Autoplay Policy,用户需先与 Webview 交互才能播放
播放列表较长时无法定位到当前播放歌曲 (VS Code 未实现 activeItems 处于 quickPick 非可视区域时的滚动聚焦)长列表定位问题 VS Code 已修复- 只显示中文命令是因为使用中文系统语言而未装中文语言包,应是 VS Code 对 nls 支持的 bug,请在应用商店安装中文语言包。如果习惯英文的话,可将显示语言改回英文。