一坨屎。 功能基本不可用,写着玩的。 等一个特技狼的 ShadowPlayer2
Go to file
2020-04-20 14:39:45 +08:00
icons feat: switch playback mode, and add a default album cover 2020-04-10 18:35:29 +08:00
.gitignore Update .gitignore 2020-04-06 15:19:28 +08:00
CMakeLists.txt feat: get audio file properties from taglib 2020-04-19 18:22:21 +08:00
FlacPic.h feat: album cover support copy-paste from the old SP codebase 2020-04-09 18:12:35 +08:00
ID3v2Pic.h feat: album cover support copy-paste from the old SP codebase 2020-04-09 18:12:35 +08:00
main.cpp feat: single app with local socket 2020-04-11 19:54:51 +08:00
mainwindow.cpp fix: display default album cover and other fix 2020-04-20 14:39:45 +08:00
mainwindow.h misc: show info from audio tag if possible 2020-04-20 14:23:28 +08:00
mainwindow.ui feat: get audio file properties from taglib 2020-04-19 18:22:21 +08:00
pineapple-music.desktop feat: add an icon... 2020-04-08 18:24:11 +08:00
playlistmodel.cpp fix: crash when close program 2020-04-07 20:38:32 +08:00
playlistmodel.h fix: crash when close program 2020-04-07 20:38:32 +08:00
README.md feat: get audio file properties from taglib 2020-04-19 18:22:21 +08:00
resources.qrc feat: switch playback mode, and add a default album cover 2020-04-10 18:35:29 +08:00
seekableslider.cpp init commit 2020-04-06 15:15:13 +08:00
seekableslider.h init commit 2020-04-06 15:15:13 +08:00
singleapplicationmanager.cpp fix: single app does not works under windows 2020-04-11 23:16:24 +08:00
singleapplicationmanager.h feat: single app with local socket 2020-04-11 19:54:51 +08:00

This is a not ready to use, toy project

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.

Note

The Qt Multimedia APIs build upon the multimedia framework of the underlying platform. This can mean that support for various codecs or containers can vary between machines, depending on what the end user has installed.

Current implementation use all stuff from Qt which include the multimedia playback support, which means user may need to install codecs by themself. There is a link provided by QtWiki about Qt 5.13 Multimedia Backends, and here is a chart about some other things which might be helpful.

Platform Built-in support Probably useful 3rd-party codecs
Windows Supported Formats In DirectsShow Xiph.org: Directshow Filters for Ogg Vorbis, Speex, Theora, FLAC, and WebM
macOS Media formats supported by QuickTime Player Sorry, I don't know...
Unix/Linux depends on GStreamer plugins which user installed GStreamer Plug-ins: gst-plugins-base, gst-plugins-good, gst-plugins-ugly, gst-plugins-bad

Build

Current state, we need:

  • cmake as the build system.
  • qt5 with qt5-multimedia since we use it for playback.
  • taglib to get the audio file properties.
  • pkg-config to find the installed taglib.

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

Linux

Just normal build process as other program. Nothing special ;)

Windows

Install the depts manually is a nightmare. I use KDE Craft but MSYS2 should also works. FYI currently this project is not intended to works under Windows (it should works and I also did some simple test though).

macOS

I don't have a mac, so no support at all.

About License

Since this is a toy repo, I don't spend much time about the license stuff. Currently this project use some assets and code from ShadowPlayer, which have a very interesting license -- do whatever you want but cannot be used as homework -- obviously it's not a so called free license. I may do some license housecleaning works by replaceing the assets and code implementation when the code become reasonable, and the final codebase may probably released under MIT license.

Anyway here is a list of file which is in non-free state (with license: do whatever you want but cannot be used as homework):

  • All png images inside icons folder.
  • FlacPic.h
  • ID3v2Pic.h
  • seekableslider.{h,cpp}

Also there are some source code which I copy-paste from Qt codebase, which released under BSD-3-Clause license by the Qt Company:

  • playlistmodel.{h,cpp}