前言
前几天介绍了我开发 AudioDock 项目的一些问题。好多小伙伴很感兴趣这个项目。

今天就简单介绍下这个项目吧!
往期精彩推荐
- 字节也在用的 @tanstack/react-query 到底有多好用!🔥🔥🔥
- 🚀🚀🚀 告别复制粘贴,这个高效的 Vite 插件让我摸鱼🐟时间更充足了!
- 🔥🔥🔥 原来在字节写代码就是这么朴实无华!🔥🔥🔥
- 更多精彩文章欢迎关注我的公众号:萌萌哒草头将军
AudioDock
AudioDock(声仓)是一款免费开源的音频播放器,

- 多端支持 💻:包含移动端、web端、桌面端、小程序、电视端!
- 双模式无缝切换 ♻️:有声书、音乐模式一键无缝切换,记忆不同模式下的播放信息!
- 支持 docker 部署 📦:可以通过 docker 部署服务端和 web 端!
- 多用户支持 👥:支持多用户交互联动!
- 设备接力 📱:支持多设备之间无缝切换!
- 解析元数据 🖼️:如果是带元信息的歌曲,可以展示歌词、封面等信息!
目前已经完成了移动端、桌面端、web端的开发,正在有节奏的测试中,即将正式发版!
AudioDock 依赖的服务端已经完成了所有功能的支持了。
下面是完整的开发情况:
✅:完成 ❌:未开发/未完成开发 🚫:无设计
| 功能描述 | 桌面端 | 移动端 |
|---|---|---|
| 切换有声书和音乐模式 | ✅ | ✅ |
| 自动导入数据 | ✅ | ✅ |
| 播放器功能 | ✅ | ✅ |
| 歌词展示 | ✅ | ✅ |
| 专辑、艺术家 | ✅ | ✅ |
| 聚合搜索 | ✅ | ✅ |
| 边听边存 | ❌ | ❌ |
| 多端同步 | ✅ | ✅ |
| 迷你播放器 | ✅ | 🚫 |
| 多用户同步播放 | ✅ | ✅ |
| 播放记录 | ✅ | ✅ |
| 收藏记录 | ✅ | ✅ |
| 桌面歌词 | ✅ | ❌ |
| 和系统交互 | ✅ | ✅ |
| TTS 生成有声书 | ❌ | ❌ |
| 云盘聚合 | ❌ | ❌ |
快速体验
NAS 部署
bash
docker pull ctjj/audiodock-api:latest
docker pull ctjj/audiodock-web:latest
然后复制 readme 对应的内容到 nas 项目位置启动即可,
无法拉镜像的小伙伴公众号后台输入:audiodock ,获取链接!
本地运行
准备:
- 复制 services/api、 packages/db 包 根目录下的 .env.example 文件,修改名称为 .env
- 修改下面文件路径
ini
AUDIO_BOOK_DIR=./music/audio
MUSIC_BASE_DIR=./music/music
CACHE_DIR=./music/cover
然后运行下面的命令,自动打开桌面端
bash
nvm use 22
pnpm install
npm run dev
移动端需要进入 /apps/mobile 目录启动:
arduino
npx expo run:ios --device
docker 启动
修改 docker-compose 的环境变量 和 volumes:
bash
environment:
- AUDIO_BOOK_DIR=/audio
- MUSIC_BASE_DIR=/music
- CACHE_DIR=/covers
- DATABASE_URL=file:/data/dev.db
# 挂载数据文件和缓存,使用 Docker 命名卷更安全
volumes:
- ./audio:/audio
- ./music:/music
- ./covers:/covers
- api-db:/data
根目录下运行构建命令:
css
docker-compose build --no-cache
docker-compose up
产品由来
首先我是一名重度的 NAS 用户,一方面是需要将孩子、家人的海量照片存储起来,另一方面我本人也是数据爱好者。
我遇到的最大的问题是没有一款让 NAS 用户用起来舒服的音频播放器!厂家也是在摆烂中,没办法那就自己开发吧!
用心的设计
对于有各种想法的开发者来说,自己开发一款属于自己的产品,无疑是件开心的事情,因为天马行空的想象有天变成了可落地的产品!
所以,AudioDock 无限趋近我心中完美的样子!
歌词滚动展示:

桌面歌词:

mini播放器:

和系统集成:

可以在系统导航栏随意控制!
同步播放:

不同用户之间可以互相邀请同步播放,同意后播播邀请者当前的音频和列表,给生活多一点分享的乐趣!
设备接力:

当我在通勤时用手机听歌,回到公司,打开电脑,可以继续听!
激动人心的功能
除了上面基础的功能,我目前正在调研准备下个阶段功能的开发。
TTS 生成有声书
有的时候很喜欢一本书,但是有不想坐着,只想躺着听,找不到合适的工具来满足我的使用场景。
所以,下个阶段努力实现这个功能。
早期调研使用 edge-tts python 库来实现这个基础功能。
鉴于最近 Index TTS 的强势出圈,也打算跟进克隆音色朗读文本的方案!
云盘聚合
我的仓鼠行为很早就出现了,在云盘囤积了各种音乐,为了方便入库,后面也会实现将云盘的音频统一入库。
简单的方案是,通过云盘授权 AList,然后通过 AList 的服务和 AudioDock 服务对接,实现音频自动入库。
未来展望
后续,还会考虑做个小程序,让大家的使用更加方便,如果后面我家里买了大电视,会考虑做个电视端的播放器,这样整个生态就全了!
最后
希望 AudioDock 的出现,可以给 Docker 党、Nas 党带来更多的便利!
往期精彩推荐
- 字节也在用的 @tanstack/react-query 到底有多好用!🔥🔥🔥
- 🚀🚀🚀 告别复制粘贴,这个高效的 Vite 插件让我摸鱼🐟时间更充足了!
- 🔥🔥🔥 原来在字节写代码就是这么朴实无华!🔥🔥🔥
- 更多精彩文章欢迎关注我的公众号:萌萌哒草头将军