一坨屎。 功能基本不可用,写着玩的。 等一个特技狼的 ShadowPlayer2
Go to file
2025-02-12 20:49:11 +08:00
.github/workflows chore(CI): bump msvc windows CI Qt version to 6.8.2 2025-02-12 20:49:11 +08:00
assets feat(macOS): initial macOS bundle support 2025-01-06 13:21:46 +08:00
dist chore: RC file for windows, taglib tweaks 2024-09-08 15:36:28 +08:00
icons feat(UI): add skin support 2024-09-10 08:13:03 +08:00
languages feat: basic lyrics support 2024-09-20 20:59:40 +08:00
.editorconfig chore: better qt-only msvc build support 2024-10-15 22:46:35 +08:00
.gitignore feat(macOS): initial macOS bundle support 2025-01-06 13:21:46 +08:00
appveyor.yml chore(CI): bump appveyor Qt version to 6.8 2025-01-05 23:26:14 +08:00
CMakeLists.txt refactor(UI): prepare for chapter support on seekbar 2025-01-18 00:08:19 +08:00
fftspectrum.cpp fix: FTBFS from Arch Linux 2024-10-27 18:03:36 +08:00
fftspectrum.h feat: initial fft spectrum visualization support 2024-10-20 00:21:54 +08:00
lrcbar.cpp feat: basic lyrics support 2024-09-20 20:59:40 +08:00
lrcbar.h feat: basic lyrics support 2024-09-20 20:59:40 +08:00
lyricsmanager.cpp lyricsmanager: parse time string by ourselves 2024-10-26 19:38:04 +08:00
lyricsmanager.h lyricsmanager: parse time string by ourselves 2024-10-26 19:38:04 +08:00
main.cpp UI: add drop shadow to mainwindow labels 2024-11-16 20:38:48 +08:00
mainwindow.cpp chore: tidy code and hello 2025 :) 2025-02-09 13:12:37 +08:00
mainwindow.h refactor(UI): prepare for chapter support on seekbar 2025-01-18 00:08:19 +08:00
mainwindow.ui refactor(UI): prepare for chapter support on seekbar 2025-01-18 00:08:19 +08:00
playbackprogressindicator.cpp feat: sidecar .chp and .pbf support 2025-01-23 22:45:46 +08:00
playbackprogressindicator.h feat: sidecar .chp and .pbf support 2025-01-23 22:45:46 +08:00
playlistmanager.cpp chore: tidy code and hello 2025 :) 2025-02-09 13:12:37 +08:00
playlistmanager.h chore: tidy code and hello 2025 :) 2025-02-09 13:12:37 +08:00
README.md feat: sidecar .chp and .pbf support 2025-01-23 22:45:46 +08:00
resources.qrc feat(UI): add skin support 2024-09-10 08:13:03 +08:00
seekableslider.cpp chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00
seekableslider.h chore: tidy code and hello 2025 :) 2025-02-09 13:12:37 +08:00
singleapplicationmanager.cpp chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00
singleapplicationmanager.h chore: license cleanup, other tweaks 2024-09-08 00:34:45 +08:00

Read Before Use

Since I just need a simple player which just works right now, so I did many things in a dirty way. Don't feel so weird if you saw something I did in this project is using a bad approach.

Features

We have the following features:

  • Sidecar lyrics file (.lrc) support with an optional desktop lyrics bar widget
  • Sidecar chapter file support
    • YouTube-style chapter saved to a plain text file with .chp suffix
    • PotPlayer .pbf file, [Bookmark]s as chapters
  • Auto-load all audio files in the same folder of the file that you attempted to play, into a playlist

These features are not available, some of them are TBD and others are not planned:

  • File format support will be limited by the FFmpeg version that Qt 6 uses.
    • ...which if you use Qt's official binary, only contains the LGPLv2.1+ part. (already good enough, tho)
  • No music library management support and there won't be one!
    • It'll auto-load music files in the same folder of the file that you attempted to play, so organize your music files on a folder-basis.
  • Limited system integration:
    • No SMTC support under Windows for now
    • No MPRIS support under Linux desktop for now
    • No "playback progress on taskbar icon" and "taskbar thumbnail buttons" support whatever on Windows or Linux desktop for now
  • Limited lyrics (.lrc) loading support:
    • Currently no .tlrc (for translated lyrics) or .rlrc (for romanized lyrics) support.
    • Multi-line lyrics and duplicated timestamps are not supported
    • Extensions (Walaoke and A2 extension) are not supported

Build

Current state, we need:

  • cmake as the build system.
  • qt6 with qt6-multimedia since we use it for playback.
  • taglib to get the audio file properties.
  • kissfft for FFT support (will be downloaded at configure-time by cmake).

Then we can build it with any proper c++ compiler like g++ or msvc.

Building it just requires normal cmake building steps:

$ cmake -Bbuild
$ cmake --build build

Help Translation!

Translate this project on Codeberg's Weblate!

About License

Pineapple Music as a whole is licensed under MIT license. Individual files may have a different, but compatible license.

All png images inside icons folder are originally created by @ShadowPower for ShadowPlayer. These images are licensed under CC0 license, grant by the original author.