Skip to content

WhatDamon/Simplay-Player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simplay Player Logo

Simplay Player

Python requirement GitHub repo size GitHub repo license GitHub Action #1 GitHub Action #2 GitHub Release GitHub Downloads GitHub Issues GitHub Pull Requests GitHub Discussions GitHub repo stars

Important

注意, 该软件在 macOS 和 Linux 下可能存在影响比较大的 BUG 需要注意, Windows 端基本稳定并可用. 由于一些原因该项目将会进入缓慢更新阶段, 望谅解!

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

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

支持 MP3M4AFLACWAVAAC 格式 (已测试的所有格式中, APEMP2WMAOGG有不同程度的不支持, 其他格式也有可能支持)

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

使用前须知

对于 Linux 用户, 使用前需要确保安装了 zenity, libmpv 等软件包 (libmpv 是 Flet 硬生生强制添加的依赖, 不过在未来或许会被使用, 当前的音频播放依赖 gstreamer)

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

sudo apt-get install libmpv-dev zenity

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

Windows 暂无额外需求, macOS 尚不明确

要求

Python 3.8 及更高版本, 推荐 3.10 及更高版本以保障其正常运行 (Action 中我们使用了 Python 3.11 进行编译测试)

推荐 Flet 0.19.0 及更高版本, 您可以测试一下 Simplay Player 最低它能在哪个版本可以跑起来 (由于 0.20.0 开始部分组件被修改, 样式可能有点奇怪, 将在后续解决)

开发使用前 *nix系统 需要先执行...

pip install -r requirements.txt

Windows 则需要执行...

pip install -r requirements_win.txt

注:区分的原因是 Windows-Toasts 库只能在 Windows 下生效!

如果希望开发 WinRT 相关内容 (如 SMTC), 需要执行...

pip install winsdk

此外, 该软件 不能在含有 CJK 文本 (即中文、日语、韩文) 的路径下正常开发与运行!

TODO

  • 基本逻辑
  • 吐司通知 (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 提交

使用到的第三方项目

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