Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@

- ✨ 支持扫码登录
- 📱 支持手机号登录
- 📅 自动进行每日签到及云贝签到
- ~~📅 自动进行每日签到及云贝签到~~
- 💻 支持桌面歌词
- 💻 支持切换为本地播放器,此模式将不会连接网络
- 🎨 封面主题色自适应,支持全站着色
- 🌚 Light / Dark / Auto 模式自动切换
- 📁 本地歌曲管理及分类(建议先使用 [音乐标签](https://www.cnblogs.com/vinlxc/p/11347744.html) 进行匹配后再使用)
- 📁 简易的本地音乐标签编辑及封面修改
- 📁 本地音乐标签编辑及封面修改
- 🎵 **支持播放部分无版权歌曲(可能会与原曲不匹配,客户端独占功能)**
- ⬇️ 下载歌曲 / 批量下载( 最高支持 Hi-Res,需具有相应会员账号 )
- ➕ 新建歌单及歌单编辑
Expand All @@ -72,6 +72,7 @@
- 📂 云盘内歌曲播放
- 🔄 云盘内歌曲纠正
- 🗑️ 云盘歌曲删除
- 🌐 支持 Subsonic / Navidrome 流媒体服务(多服务器支持、自动连接)
- 📝 支持逐字歌词
- 🔄 歌词滚动以及歌词翻译
- 📹 MV 与视频播放
Expand All @@ -80,7 +81,7 @@
- 🔄 支持 PWA
- 💬 支持评论区
- 🎵 支持 Last.fm Scrobble(播放记录上报)
- ~~📱 移动端基础适配~~
- 📱 移动端基础适配

## 🖼️ 界面展示

Expand Down Expand Up @@ -182,7 +183,7 @@ docker run -d --name SPlayer -p 25884:25884 imsyy/splayer:latest

> 其他部署平台大致相同,在此不做说明

1. 本程序依赖 [NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) 运行,请确保您已成功部署该项目或兼容的项目,并成功取得在线访问地址
1. 本程序依赖 [NeteaseCloudMusicApi](https://github.com/neteasecloudmusicapienhanced/api-enhanced) 运行,请确保您已成功部署该项目或兼容的项目,并成功取得在线访问地址
2. 点击本仓库右上角的 `Fork`,复制本仓库到你的 `GitHub` 账号
3. 复制 `/.env.example` 文件并重命名为 `/.env`
4. 将 `.env` 文件中的 `VITE_API_URL` 改为第一步得到的 API 地址
Expand Down Expand Up @@ -254,7 +255,7 @@ docker run -d --name SPlayer -p 25884:25884 imsyy/splayer:latest

特此感谢为本项目提供支持与灵感的项目:

- [NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi)
- [NeteaseCloudMusicApi](https://github.com/neteasecloudmusicapienhanced/api-enhanced)
- [YesPlayMusic](https://github.com/qier222/YesPlayMusic)
- [UnblockNeteaseMusic](https://github.com/UnblockNeteaseMusic/server)
- [applemusic-like-lyrics](https://github.com/Steve-xmh/applemusic-like-lyrics)
Expand Down
2 changes: 2 additions & 0 deletions components.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,8 @@ declare module 'vue' {
SongListMenu: typeof import('./src/components/Menu/SongListMenu.vue')['default']
SongPlayList: typeof import('./src/components/List/SongPlayList.vue')['default']
SongUnlockManager: typeof import('./src/components/Modal/Setting/SongUnlockManager.vue')['default']
StreamingServerConfig: typeof import('./src/components/Modal/Setting/StreamingServerConfig.vue')['default']
StreamingSetting: typeof import('./src/components/Setting/StreamingSetting.vue')['default']
SvgIcon: typeof import('./src/components/Global/SvgIcon.vue')['default']
TextContainer: typeof import('./src/components/Global/TextContainer.vue')['default']
ThirdSetting: typeof import('./src/components/Setting/ThirdSetting.vue')['default']
Expand Down
1 change: 1 addition & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ export default defineConfig({
items: [
{ text: "下载", link: "/download" },
{ text: "使用指南", link: "/guide" },
{ text: "流媒体服务", link: "/streaming" },
],
},
{
Expand Down
2 changes: 1 addition & 1 deletion docs/guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ docker run -d --name SPlayer -p 25884:25884 imsyy/splayer:latest

### Vercel 部署

1. 先部署 [NeteaseCloudMusicApi](https://github.com/Binaryify/NeteaseCloudMusicApi) 并获取 API 地址
1. 先部署 [NeteaseCloudMusicApi](https://github.com/neteasecloudmusicapienhanced/api-enhanced) 并获取 API 地址
2. Fork 本仓库到你的 GitHub 账号
3. 复制 `/.env.example` 为 `/.env` 并配置:
```
Expand Down
40 changes: 40 additions & 0 deletions docs/streaming.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 流媒体服务支持

SPlayer 支持连接兼容 Subsonic 协议的流媒体服务器(如 Navidrome、Subsonic、Airsonic 等),为您提供云端音乐播放体验。

## 功能特性

- **多服务器支持**:您可以同时配置多个服务器,并随时切换。
- **自动连接**:应用启动时会自动连接到上次使用的服务器。
- **歌词支持**:支持解析 Subsonic 协议返回的歌词(包括 Plain 文本和 Structured 格式),并自动转换为 LRC 格式显示。
- **分类浏览**:支持按 **单曲**、**歌手**、**专辑**、**歌单** 分类浏览库中资源。
- **无缝集成**:流媒体音乐可以像本地音乐一样加入播放列表、收藏和播放。

## 配置指南

1. 进入 **设置** -> **流媒体服务**,或在侧边栏点击 **流媒体** 页面。
2. 点击 **添加服务器** 按钮。
3. 填写服务器信息:
- **名称**:自定义服务器名称(如 "My Navidrome")。
- **地址**:服务器的 URL(包含端口,如 `https://music.example.com`)。
- **用户名**:您的账号。
- **密码**:您的密码(或 Token)。
- **类型**:选择 Navidrome 或 Subsonic。
4. 点击 **确认** 保存并连接。

## 常见问题

### 连接失败?

- 请检查服务器地址是否正确,是否包含 `http://` 或 `https://`。
- 确认服务器支持 Subsonic API,并已开启相关权限。
- 若使用自签名证书,应用可能默认拦截,请尝试配置 HTTPS 忽略证书错误(目前需自行确保网络环境安全)。

### 歌词不显示?

- 请确认服务端已正确刮削并存储了歌词。
- 对于 Navidrome,支持读取内嵌歌词或 `.lrc` 文件。

### 播放列表同步

- 目前支持读取服务端的歌单,在客户端创建的歌单暂不直接同步回服务端(取决于后续更新)。
9 changes: 9 additions & 0 deletions src/api/streaming/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/**
* 流媒体 API 统一入口
*/

export * as subsonicApi from "./subsonic";
export * as jellyfinApi from "./jellyfin";

export { default as subsonic } from "./subsonic";
export { default as jellyfin } from "./jellyfin";
Loading