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

往期精彩推荐

相关推荐
Lvan的前端笔记3 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
天启HTTP5 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
运维行者_5 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
明月_清风6 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js
hz567897 小时前
涉密视频会议设备配置指南:终端、音视频采集与配套设施选型
服务器·网络·数据库·安全·实时音视频·信息与通信·智能硬件
广州浮点FLOATLIC7 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
优橙教育7 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
AIgorithmGEEK8 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil2088 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)8 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障