AudioDock:服务器和 NAS 音频播放最棒的软件!🚀🚀🚀

前言

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

github.com/mmdctjj/Aud...

今天就简单介绍下这个项目吧!

往期精彩推荐

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 党带来更多的便利!

往期精彩推荐

相关推荐
Gauss松鼠会3 分钟前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
Gauss松鼠会23 分钟前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
SomeOtherTime1 小时前
node.js基础(AI回答)
node.js
.道阻且长.1 小时前
Linux基本开发工具:编译器gcc/g++
linux·运维·服务器·职场和发展
HideF10 小时前
Linux
linux·服务器·网络
Ruiery12 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
乌恩大侠12 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
迪菲赫尔曼14 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
by2099916 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
迪菲赫尔曼16 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测