如何使用 pyqt 實現 Groove 音樂播放器

之一Yo發表於2022-04-23

前言

Win10 自帶了一款很好用的音樂播放器 —— Groove 音樂,但是隻能支援本地音樂的播放。2020年3月底到4月底,自己一直在學習 PyQt5,然後從 2020年5月開始,著手使用 PyQt5 編寫增強版的 Groove 音樂。因為平時有課,所以大部分程式碼是在寒暑假編寫的。

剛開始程式碼寫的很撈,反反覆覆重構過多次,不過現在整體看來應該沒那麼亂了,除了一部分很久遠的程式碼,實在不敢去碰。總結下來,專案用到了以下技術:

  • PyQt5
  • 爬蟲
  • 資料庫
  • 影像處理

其中資料庫還是去年年底學了 Java 技術棧之後,於今年寒假新增進專案的。以前用的是 json 檔案來儲存歌曲資料,說多了都是淚。之前由於種種原因(主要是懶),程式碼一直沒有編譯成 exe 釋出出來,今天終於打包釋出了 v1.0.0 大版本。在虛擬環境裡面打包之後發現軟體有 297MB,所以又刪了一些無用的 dll 和 pyd 檔案,最終瘦身為 197MB,在 3 臺 Win11 電腦上測試良好,歡迎大家去我的 GitHub倉庫:https://github.com/zhiyiYo/Groove 下載使用,有任何問題可以提 issue,我會在第一時間回覆。

功能

目前播放器實現了以下功能:

  • 播放本地音樂

    播放本地音樂

  • 搜尋、播放和下載線上音樂

    搜尋、播放和下載線上音樂

  • 建立和管理個人播放列表

    建立和管理個人播放列表

  • 檢視和編輯歌曲資訊

    檢視和編輯歌曲資訊

  • 播放和下載線上 MV(由於錄製動圖體積太大,所以這裡只給出圖片,順便感慨一波遙妹真甜?)

    播放和下載線上 MV

注意事項

  • 在使用軟體之前必須先安裝好 LAV Filters,因為 Qt 要用它來解碼音樂;
  • 開啟亞克力背景後視窗拖動可能會卡頓,這是 Win10 本身的 bug,Win11 沒有這個問題,可以在設定介面關閉亞克力背景的選項,這樣拖動的時候就不會卡頓了
  • 目前軟體支援的音訊格式有以下幾種:
    • mp3
    • flac
    • mp4/m4a

後記

如果大家喜歡這個專案的話,歡迎 star 、fork 和 follow,再次給出專案地址 https://github.com/zhiyiYo/Groove ,防止迷路,以上~~

相關文章