Skip to content

chyinan/Soundscape

Repository files navigation

聆境(Soundscape)

App Icon

聆境(Soundscape) 是一款沉浸式跨平台桌面音乐播放器,采用 Rust / Tauri v2 打造后端,前端使用原生 HTML + CSS + JavaScript,并配备精致的UI界面。应用能自动提取音频元数据与封面、实时转码为浏览器友好的立体声 WAV,并在界面中呈现动态模糊与色彩自适应。

聆听音乐,沉浸于境。让每一次播放都成为一次感官之旅。

界面预览

普通模式 极简模式
普通模式 极简模式
纯译文模式 双语(上原下译)
纯译文模式 双语(上原下译)
双语(上译下原) 纯原文模式
双语(上译下原) 纯原文模式

功能特性

  • 三种主要播放模式
    • 歌词模式:经典的玻璃界面,显示专辑封面、歌曲信息与播放控件。
    • 极简模式:横向布局,左侧为专辑封面,右侧为歌曲信息,适合宽屏显示。
    • 封面模式:以大型专辑封面为中心,下方显示单行或双行歌词,提供极致的沉浸感。
  • 高度自定义背景
    • 多种动态背景模式:提供 5 种精美的动态背景效果,包括静态模糊流动丝绸水墨晕染海波焦散迷幻极光,每种模式都会根据专辑封面颜色自动适配,营造沉浸式视觉体验。
    • 自定义背景源:支持选择本地图片或视频文件作为全局背景,并可调节背景模糊度。
    • 面板封面背景:可独立设置面板是否使用专辑封面作为背景,并支持单独调节面板背景模糊度。
  • 智能面板颜色系统
    • 自适应面板颜色:启用后,面板颜色会根据专辑封面自动提取的主色调智能调整,确保视觉和谐统一。
    • 自定义面板颜色:支持手动选择面板颜色,满足个性化需求。
  • 本地文件播放:通过系统文件选择框或拖拽加载本地音频文件。
  • 智能播放列表管理
    • 拖动排序:支持通过拖拽调整播放列表中歌曲的顺序,拖动时会有视觉反馈提示插入位置。
    • 删除歌曲:鼠标悬停在列表项上时显示删除按钮,可单独移除不需要的歌曲。删除正在播放的歌曲时,当前播放不会中断,歌曲会继续播放直到结束。
    • 批量导入:支持导入整个文件夹,自动扫描并添加其中的所有音频文件。
    • 播放模式切换:支持顺序播放、单曲循环、随机播放等多种播放模式。
  • FFmpeg 实时转码:借助 ffmpeg-sidecar 自动下载平台对应的 FFmpeg,可将任意常见封装解码并转码为双声道 WAV。
  • 临时文件缓存:转码后的 WAV 保存在系统临时目录,缓存文件自动删除,通过 Tauri 的 asset 协议流式播放,降低内存占用同时保持拖动流畅。
  • 强大的歌词系统
    • 多模式显示:支持 原文 / 译文 / 双语(上原下译) / 双语(上译下原) / 纯文字 等多种歌词显示模式,并可一键切换。
    • 智能识别:自动检测歌曲是否内嵌翻译,若无翻译,则仅在相关模式间切换。
    • 动态滚动效果:当前播放的歌词行会高亮并平滑滚动至视觉中心,前后文则以淡出和缩放效果呈现,营造出沉浸式的卡拉OK体验。
  • 精细化字体定制:自动扫描并分类系统字体,允许为 中文、日文、英文歌词界面 分别指定字体。同时支持独立设置原文和译文的 加粗斜体 效果。
  • 自适应主题颜色:根据封面颜色智能调整文字和进度条颜色,确保信息清晰可读。
  • 键盘快捷键
    • Space 播放 / 暂停
    • R 重新播放
    • F 窗口全屏开 / 关
    • V 循环切换 普通 / 极简 / 封面 模式
    • L 循环切换歌词显示模式(例如:双语 → 原文 → 译文...)
    • ESC 从播放页面返回主页
    • Ctrl加鼠标滚轮可自由缩放UI比例大小

技术栈

层级 技术
后端 Rust · Tauri v2 · ffmpeg-sidecar · tempfile
前端 HTML5 · CSS3 · Vanilla JS
音频 FFmpeg(由 ffmpeg-sidecar 自动下载并调用)

环境准备

  1. Node.js ≥ 18 (含 npm)
  2. Rust stablerustup 安装)
  3. Tauri CLI
    npm install -g @tauri-apps/cli
    # 或 cargo install tauri-cli

FFmpeg 会在首次运行时由 ffmpeg-sidecar 自动下载,无需手动安装。


本地运行(开发模式)

# 克隆仓库
git clone https://github.com/chyinan/Soundscape.git
cd Soundscape

# 安装前端依赖
npm install

# 启动开发模式(前端 + Rust 后端热重载)
npm run tauri dev

启动后会自动打开应用窗口,选择音频文件即可播放。


构建发行版

# 可选:清理旧构建
cd src-tauri && cargo clean && cd ..

# 生成安装包 / 可执行文件(根据当前操作系统)
npm run tauri build

打包产物位于 src-tauri/target/release/bundle/* 目录下。


目录结构

聆境(Soundscape)/
├─ src/            # 前端源码
│  ├─ main.js
│  └─ style.css
├─ src-tauri/      # Rust 后端 + Tauri 配置
│  ├─ src/
│  │  └─ lib.rs    # 主要业务逻辑
│  ├─ tauri.conf.json
│  └─ icons/       # 应用图标(自动生成)
├─ package.json
└─ README.md       # 当前文件

许可证

MIT License © 2025 chyinan

About

A beautiful, immersive web-based music player.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •