Skip to content

Commit

Permalink
Small update with bug fix
Browse files Browse the repository at this point in the history
  • Loading branch information
WhatDamon committed Feb 5, 2024
1 parent 5a024c5 commit b7ca4e2
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 22 deletions.
31 changes: 17 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,19 @@
# Simplay Player

> [!IMPORTANT]
> WIP! 大部分功能还在开发中, 并且目前也存在着非常严重的恶性 BUG 需要修复, 基本处于不可用状态
> WIP! 大部分功能还在开发中, 并且目前也存在着非常严重的恶性 BUG 需要修复, 基本处于勉勉强强可用的状态
这是一个 __闲得发慌时__ 开发出来的小作品
这是一个 __闲得发慌时__ 开发出来的小作品, 而我动手做这玩意的原因是我周围的人大多都在写类似的项目

支持 `MP3``OGG``M4A``FLAC``WAV` 格式 (不在这里的部分格式也是可以用的吧,建议各位测试一下)
最早被称为 __Simply Player____简单的播放器__, __Simplay__ 是在码字过程中意外中得到名字

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

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

## 要求

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

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

Expand All @@ -34,26 +36,27 @@ ___注:区分的原因是 `Windows-Toasts` 库只能在 Windows 下生效!___
- [x] 基本逻辑
- [x] 吐司通知 (Windows 独占性功能, 其它系统使用 `SnackBar` 替代)
- [x] 快进与倍速播放
- [x] GitHub Actions 自动测试编译工作流 (使用 __Nuitka__ 实现)
- [ ] 循环播放 (遇到技术性难题, 暂时注释了 `enableOrDisable` 函数, 预留了占位按钮 `playInLoop_btn` 和状态变量 `loopOpen`)
- [ ] 设置 (目前已有占位按钮 `settings_btn`)
- [ ] 歌词显示与滚动 (已预留了歌词路径变量 `lyricFile` 和读取函数 `lyricExistAndRead`)
- [ ] 歌单 (目前已有占位按钮 `audioList_btn`)
- [x] GitHub Actions 自动测试编译工作流 (使用 __Nuitka__ 实现, 详见[本项目 Actions](https://github.com/WhatDamon/Simplay-Player/actions))
- [ ] 循环播放 (遇到技术性难题, 暂时注释了 `enableOrDisable` 函数 (函数临时被注释), 预留了占位按钮 `playInLoop_btn` (组件已隐藏) 和状态变量 `loopOpen`)
- [ ] 设置 (目前已有占位按钮 `settings_btn`, 并隐藏)
- [ ] 歌词显示与滚动 (已预留了歌词路径变量 `lyricFile` 和读取函数 `lyricExistAndRead`(函数临时被注释))
- [ ] 歌单 (目前已有占位按钮 `audioList_btn`, 并隐藏)
- [ ] 日志输出
- [ ] 系统托盘
- [ ] 系统托盘 (预计使用 `pystray` 实现)
- [ ] 检查更新 (基于 __Github API__)
- [ ] 界面自动取色
- [ ] 混音器
- [ ] 在线获取歌曲 (__网易云__) (目前已有占位菜单按钮)
- [ ] 在线获取歌曲 (__网易云__) (目前已有占位菜单按钮, 但代码还没开写)

## BUG 列表

以下内容不一定完全, 可能存在更多不在这个列表的 BUG!

- [x] 打开歌曲后需要连续点击三次播放键才可以进入播放状态 (通过调整代码逻辑修复)
- [ ] 读取存在封面的歌曲后再打开无封面歌曲不会替换成占位的 `track.png`
- [ ] `Ctrl` + `H` 快捷键等操作以后后歌曲进度条无法工作
- [ ] 更换歌曲后可能会有些不是特别影响的报错
- [ ] 打开歌曲后需要连续点击三次播放键才可以进入播放状态
- [ ] 隐藏顶栏或者 `Ctrl` + `H` 快捷键等操作以后后歌曲进度条无法工作, 并无法彻底关闭软件
- [ ] 加载歌曲或更换歌曲后前可能会有些不是特别影响的报错
- [ ] 窗口标题有时不能按希望的方式显示 (实际解决很简单, 但是我希望能够整合一下)

## 急切的任务

Expand Down
23 changes: 15 additions & 8 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -125,27 +125,34 @@ def windowsToastNotify():
toaster.show_toast(sysToast)

def pickFileResult(e: ft.FilePickerResultEvent):
page.splash = ft.ProgressBar()
page.update()
audioPathTemp = (
", ".join(map(lambda f: f.path, e.files)) if e.files else "Cancelled!"
)
global audioFile, lyricFile
global audioFile, lyricFile, firstPlay
if audioPathTemp == None:
pass
else:
audioFile = audioPathTemp
lyricFile = audioPathTemp[:-3] + "lrc"
if firstPlay == True:
page.overlay.append(playAudio)
firstPlay = False
playAudio.src = audioFile
audioPathTemp = None
playAudio.src = audioFile
audioInfoUpdate()
page.title = audioArtistText + " - " + audioTitleText + "- Simplay Player"
global currentOS
if currentOS == 'windows':
windowsToastNotify()
else:
page.snack_bar = ft.SnackBar(ft.Text("已加载歌曲:\n" + audioArtistText+ " - " + audioTitleText))
page.snack_bar.open = True
page.splash = None
page.update()

pickFilesDialog = ft.FilePicker(on_result=pickFileResult)
pickFilesDialog = ft.FilePicker(on_result = pickFileResult)
page.overlay.append(pickFilesDialog)

"""
Expand All @@ -158,11 +165,8 @@ def lyricExistAndRead():
"""

def playOrPauseMusic(e):
global firstPlay, audioFile
global audioFile
if audioFile != None:
if firstPlay == True:
page.overlay.append(playAudio)
firstPlay = False
audioInfoUpdate()
global playStatus
if playStatus == False:
Expand Down Expand Up @@ -314,7 +318,7 @@ def balanceMiddle(e):
ft.MenuItemButton(
content = ft.Text("打开"),
leading = ft.Icon(ft.icons.FILE_OPEN_OUTLINED),
on_click = lambda _: pickFilesDialog.pick_files(allowed_extensions=["mp3", "ogg", "flac", "m4a", "wav"]),
on_click = lambda _: pickFilesDialog.pick_files(allowed_extensions=["mp3", "ogg", "flac", "m4a", "wav", "aac"]),
),
ft.MenuItemButton(
content = ft.Text("从网易云中获取"),
Expand Down Expand Up @@ -447,6 +451,7 @@ def balanceMiddle(e):
icon = ft.icons.LOOP_OUTLINED,
tooltip = "循环播放",
icon_size = 20,
visible = False
# on_click = enableOrDisableLoop
)

Expand All @@ -470,6 +475,7 @@ def balanceMiddle(e):
icon = ft.icons.LIBRARY_MUSIC_OUTLINED,
tooltip = "歌单",
icon_size = 20,
visible = False
)

audioInfo_btn = ft.IconButton(
Expand All @@ -483,6 +489,7 @@ def balanceMiddle(e):
icon = ft.icons.SETTINGS_OUTLINED,
tooltip = "设置",
icon_size = 20,
visible = False
)

lyric_text = ft.Text(size = 20)
Expand Down

0 comments on commit b7ca4e2

Please sign in to comment.