Skip to content

About

Python + flet制作的(充满 BUG 的)音乐播放器

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Latest commit

 

History

66 Commits

Folders and files

Repository files navigation

Simplay Player Logo

Simplay Player

Python requirement GitHub repo size GitHub repo license Python checks GitHub Release GitHub Downloads GitHub Issues GitHub Pull Requests GitHub Discussions GitHub repo stars

Important

注意, 该软件在 macOS 和 Linux 下可能存在影响比较大的 BUG

由于近一年来 flet 积极维护修改了大量 API 接口, 导致项目需要着手部分功能的重写!

这是一个 闲得发慌时 开发出来的小作品, 写得很烂请见谅

最早被称为 Simply Player 即 简单的播放器, Simplay 是在码字过程中意外中得到名字

支持 MP3、M4A、FLAC、WAV、AAC 格式 (已测试的所有格式中, APE、MP2、WMA、OGG有不同程度的不支持, 其他格式也有可能支持)

如果喜欢可以点个 Star, 当然目前我还是更希望各位可以为项目开发添砖加瓦, 多来点 PR

使用前须知

对于 Linux 用户,文件选择需要 zenity,音频播放需要 GStreamer 及相应格式插件;完整 Flet 客户端还可能需要 libmpv 等系统库。项目显式选择 full 桌面客户端,避免默认轻量客户端缺少音频扩展。

如 Ubuntu 或者 Debian 用户再使用软件前执行...

sudo apt-get install libmpv-dev zenity libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 gstreamer1.0-plugins-good

Arch 则通过 pacman 或者 AUR 安装依赖, RHEL 则用 dnf 或 yum (说真的也没必要教了把...)

Windows、macOS 暂无额外需求。

要求

Python 3.10 及更高版本, 推荐 3.12 及更高版本以保障其正常运行

当前适配并锁定 Flet / flet-audio 1.0.5。两个包需要保持相同版本。

开发使用前 多数情况 需要先执行...

poetry install
poetry run python scripts/build_native_client.py

这需要提前安装 Poetry、Flutter 3.44.9 和目标平台的桌面编译工具。 新环境先构建一次,原生补丁改变后重新构建;普通 Python 修改无须重新编译。

启动桌面播放器:

poetry run python player.py

构建后,开发热重载也可以使用 poetry run flet run player.py --assets asset。 依赖从 PyPI 解析;如需镜像,可自行配置 Poetry 源。

而 Windows 则可以额外安装 Windows-Toasts, 此库只能在 Windows 下生效

如果希望开发 WinRT 相关内容 (如 SMTC), 你可以再安装 winsdk!

本地音频及歌词已加入中文路径验证;不同系统的解码格式支持仍取决于原生音频后端。

TODO

  • 基本逻辑
  • 吐司通知 (Windows 独占性功能, 其它系统使用 SnackBar 替代)
  • 快进与倍速播放
  • GitHub Actions 锁定依赖的跨平台 Python 回归检查(发布打包待验证)
  • 多语言支持 (基本, 目前只有美式英语 en_US 和简体中文 zh_CN, 若要贡献翻译请查看 Wiki)
  • 日志输出 (注: 会产生大量日志信息保存在本地, 提交 issue 请附带该文件)
  • 循环播放
  • 歌词显示与滚动 (基本完成, 但依旧不兼容逐字歌词, 姑且算完成了)
  • 在线获取网易云歌曲 (还有一些 BUG, 慢慢修, 此外 API 比较玄学, 很多逻辑都可能存在问题)
  • 歌单 (除了不支持删除列表项和添加在线歌曲以外基本完成)
  • 检查更新 (基于 GitHub API, 允许在在设置中定义源)
  • 背景图片
  • 进阶逻辑
  • 背景模糊 (计划使用 flet_blur)
  • 进阶播放方式选择 (目前就只支持一个单曲循环)
  • 将主界面迁移至 pages 中
  • 设置 (施工中, i18n/lang.py 的部分功能需要重构才能实现自定义语言, 其余设置还需要陆续优化完善)
  • 区间播放 (即 AB 点)
  • 系统托盘 (预计使用 pystray 实现, 如果实现了就可以让 Windows-Toasts 退役了, 毕竟功能有重叠)
  • 界面自动取色 (可能通过将图片压缩到 1x1 实现)
  • EQ
  • SMTC 支持 (涉及 WinRT, 仅 Windows, 但实现有点麻烦, 调用代码已注释, 代码在 lib/smtc.py, 完成后可能会接入热词实现桌面歌词功能)
  • 任务栏进度条与按键操作 (仅 Windows 支持)
  • 多线程支持 (目前的想法只有独立检查更新线程, 其他还需要研究)
  • 拖入文件加载或命令行加载 (命令行应该会简单一点, 另外一个主要是拖入文件找不到接口)

对于其他可能的新功能可以到本项目 Discussions 提交

使用到的第三方项目

其他的都是 Python 内建库了...

About

Python + flet制作的(充满 BUG 的)音乐播放器

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages