Show HN: Beatsync – 实现跨设备完美音频同步
Beatsync 是一款高精度 Web 音频播放器,旨在实现跨设备完美音频同步。它采用类似 NTP 的时间同步机制,提供毫秒级同步精度,支持空间音频和自托管。目前,Beatsync 处于早期开发阶段,主要支持桌面 Chrome 浏览器。项目使用 [Turborepo],包含服务器端(Bun HTTP + WebSocket)和客户端(Next.js 前端),并提供快速启动指南。
Beatsync 是一款为多设备播放而设计的高精度 Web 音频播放器。
功能特性
- 毫秒级精确同步: 采用受 NTP 启发的时间同步机制,实现极高的同步精度。
- 跨平台: 适用于任何现代浏览器(推荐使用 Chrome 以获得最佳性能)。
- 空间音频: 允许通过虚拟声源控制各设备音量,实现有趣的音效。
- 完善的界面: 包含流畅的加载状态、状态指示器以及所有 UI 元素。
- 可自托管: 只需几条命令即可运行您自己的实例。
警告
Beatsync 仍处于早期开发阶段。目前,仅完全支持桌面 Chrome 浏览器。移动设备同步尚处于实验阶段,可能不稳定。
快速开始
本项目使用 Turborepo。
在 apps/client
目录下的 .env
文件中填写以下信息:
NEXT_PUBLIC_API_URL=http://localhost:8080
NEXT_PUBLIC_WS_URL=ws://localhost:8080/ws
运行以下命令以启动服务器和客户端:
bun install # 为所有工作区安装一次
bun dev # 启动客户端 (:3000) 和服务器 (:8080)
| 目录 | 用途 |
| ------------- | ------------------------------------------------------- |
| apps/server
| Bun HTTP + WebSocket 服务器 |
| apps/client
| 使用 Tailwind & Shadcn/ui 的 Next.js 前端 |
| packages/shared
| 客户端 & 服务器之间共享的类型安全 schemas 和 函数 |
关于
用于多设备播放和空间音频的高精度 Web 音频播放器。 beatsync.gg