Gary Wang
b2eb29ab5d
QTime::fromString() can lead a crash when build with icu-enabled Qt 6.8.0, see QTBUG-130597. Anyway let's workaround this issue by simply implement it by ourselves. |
||
---|---|---|
.github/workflows | ||
assets | ||
dist | ||
icons | ||
languages | ||
.editorconfig | ||
.gitignore | ||
appveyor.yml | ||
CMakeLists.txt | ||
fftspectrum.cpp | ||
fftspectrum.h | ||
lrcbar.cpp | ||
lrcbar.h | ||
lyricsmanager.cpp | ||
lyricsmanager.h | ||
main.cpp | ||
mainwindow.cpp | ||
mainwindow.h | ||
mainwindow.ui | ||
playlistmanager.cpp | ||
playlistmanager.h | ||
README.md | ||
resources.qrc | ||
seekableslider.cpp | ||
seekableslider.h | ||
singleapplicationmanager.cpp | ||
singleapplicationmanager.h |
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 - Auto-load all audio files in the same folder of the file that you attempted to play, into a playlist
But 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:
- 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
- Currently no
Build
Current state, we need:
cmake
as the build system.qt6
withqt6-multimedia
since we use it for playback.taglib
to get the audio file properties.kissfft
for FFT support (will be downloaded at configure-time bycmake
).
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.