Important
注意, 该软件在 macOS 和 Linux 下可能存在影响比较大的 BUG, 其中 Linux 下可能会遇到要求 libmpv-1
的问题
由于一些原因, 本项目停止维护, 也许未来会使用 Flutter 彻底重写本应用, 也有可能会继续开发 (如果被接手就以贡献者的身份?). 如果希望接手本项目继续维护, 请邮件至 whatdamon@damon.top 与我联系!
这是一个 闲得发慌时 开发出来的小作品, 写得很烂请见谅
最早被称为 Simply Player 即 简单的播放器, Simplay 是在码字过程中意外中得到名字
支持 MP3
、M4A
、FLAC
、WAV
、AAC
格式 (已测试的所有格式中, APE
、MP2
、WMA
、OGG
有不同程度的不支持, 其他格式也有可能支持)
如果喜欢可以点个 Star, 当然目前我还是更希望各位可以为项目开发添砖加瓦, 多来点 PR
对于 Linux 用户, 使用前需要确保安装了 zenity
, libmpv
等软件包 (libmpv
是 Flet 硬生生强制添加的依赖, 不过在未来或许会被使用, 当前的音频播放依赖 gstreamer
)
如 Ubuntu 或者 Debian 用户再使用软件前执行...
sudo apt-get install libmpv-dev zenity
Arch 则通过 pacman
或者 AUR 安装依赖, RHEL 则用 dnf
或 yum
(说真的也没必要教了把...)
Windows 暂无额外需求, macOS 尚不明确
Python 3.8 及更高版本, 推荐 3.10 及更高版本以保障其正常运行 (Action 中我们使用了 Python 3.11 进行编译测试)
推荐 Flet 0.19.0 及更高版本, 您可以测试一下 Simplay Player 最低它能在哪个版本可以跑起来 (由于 0.20.0 开始部分组件被修改, 样式可能有点奇怪, 将在后续解决, 部分写法将在 Flet 1.0 删除, 届时软件可能不可用)
开发使用前 *nix系统 需要先执行...
pip install -r requirements.txt
而 Windows 则需要执行...
pip install -r requirements_win.txt
注:区分的原因是 Windows-Toasts
库只能在 Windows 下生效!
如果希望开发 WinRT 相关内容 (如 SMTC), 需要执行...
pip install winsdk
此外, 该软件 不能在含有 CJK 文本 (即中文、日语、韩文) 的路径下正常开发与运行!
- 基本逻辑
- 吐司通知 (Windows 独占性功能, 其它系统使用
SnackBar
替代) - 快进与倍速播放
- GitHub Actions 自动测试编译工作流 (使用 Nuitka 实现, 详见本项目 Actions)
- 多语言支持 (基本, 目前只有美式英语
en_US
和简体中文zh_CN
, 若要贡献翻译请查看 Wiki) - 日志输出 (注: 会产生大量日志信息保存在本地, 提交 issue 请附带该文件)
- 循环播放
- 歌词显示与滚动 (基本完成, 但依旧不兼容逐字歌词, 姑且算完成了)
- 在线获取网易云歌曲 (还有一些 BUG, 慢慢修, 此外 API 比较玄学, 很多逻辑都可能存在问题)
- 歌单 (除了不支持删除列表项和添加在线歌曲以外基本完成)
- 检查更新 (基于 GitHub API, 允许在在设置中定义源)
- 背景图片
- 进阶逻辑
- 进阶播放方式选择 (目前就只支持一个单曲循环)
- 将主界面迁移至
pages
中 - 设置 (施工中,
i18n/lang.py
的部分功能需要重构才能实现自定义语言, 其余设置还需要陆续优化完善) - 区间播放 (即 AB 点)
- 系统托盘 (预计使用
pystray
实现, 如果实现了就可以让Windows-Toasts
退役了, 毕竟功能有重叠) - 界面自动取色 (可能通过将图片压缩到 1x1 实现)
- 混音器 (目前使用的组件未提供相关接口, 暂时搁置, 详见 flet-dev/flet#2594)
- SMTC 支持 (涉及 WinRT, 仅 Windows, 但实现有点麻烦, 调用代码已注释, 代码在
lib/smtc.py
, 完成后可能会接入热词实现桌面歌词功能) - 任务栏进度条与按键操作 (仅 Windows 支持)
- 多线程支持 (目前的想法只有独立检查更新线程, 其他还需要研究)
- 拖入文件加载或命令行加载 (命令行应该会简单一点, 另外一个主要是拖入文件找不到接口)
- 视频播放 (Flet 都引入了
libmpv
不可能不好好利用一下吧)
对于其他可能的新功能可以到本项目 Discussions 提交
- flet (Apache-2.0 license)
- TinyTag (MIT license)
- Windows-Toasts (Apache-2.0 license)
其他的都是 Python 内建库了...