1 个不稳定版本
0.3.0 | 2024 年 3 月 15 日 |
---|
#1417 in 命令行工具
4.5MB
10K SLoC
dizi
用 Rust 编写的服务器-客户端音乐播放器
本项目目标是创建一个 Rust 语言的 mocp 的现代版本。
动机
mocp 目前通过 ALSA 接口播放音频。这和 pipewire 的 pipewire-alsa 插件不兼容;每当 mocp 播放音乐时,其他音频/视频应用程序就会停止工作,反之亦然。
依赖项
构建
~$ cargo build
安装
针对单个用户
~$ cargo install --path=. --force
系统范围
~# cargo install --path=. --force --root=/usr/local # /usr also works
使用方法
~ $ dizi-server # starts server
~ $ RUST_LOG=debug dizi-server # starts server with debug messages enabled
~ $ dizi # starts server if not already started, then starts frontend
配置
client.toml
- 客户端配置
keymap.toml
- 客户端的键绑定
theme.toml
- 客户端的颜色定制
server.toml
- 服务器配置
贡献
请参阅 文档
功能/错误
请创建一个问题 :)
待办事项
服务器端
- 播放/暂停支持
- 获取音频时长(需要 rodio 和 symphonia 一起工作)
- 音量支持
- 快进/快退
- 目录播放
- 随机播放
- 重复
- 下一曲
- 排序
- 播放列表支持
- 添加/删除/更新歌曲
- 递归添加目录中的歌曲
- 随机播放
- 重复
- 下一曲
- 加载
- 清除
- 退出时保存
- 显示音乐进度
- 可配置的音频系统
- ALSA 支持(当前默认)
- JACK 支持
- Pulseaudio 支持(问题 https://github.com/RustAudio/cpal/issues/259)
- Pipewire 支持(问题 https://github.com/RustAudio/cpal/issues/554)
- 查询
- 文件名
- 文件路径
- 显示音频元数据(标题、艺术家、流派、专辑等)
- 播放列表索引和长度
- 歌曲更改钩子
客户端
- 显示隐藏文件
- 搜索
- glob 搜索
- 不区分大小写的搜索
- 快速搜索(fzf)
- 显示玩家进度
- 播放列表支持
- 显示播放列表
- 添加/删除/更新歌曲
- 随机播放
- 重复
- 下一曲
- 清除
- 显示音频元数据(艺术家、流派、专辑等)
- 主题支持
- 自定义布局支持
依赖项
~19–52MB
~1M SLoC