Next up in our preview series for Lumina version 1.3.0 is a brand-new utility: lumina-mediaplayer
This is a small utility designed to provide the ability for the user to play audio and video files on the local system, as well as stream audio from online sources. For now, only the Pandora internet radio service is supported via the “pianobar” CLI utility, which is an optional runtime dependency. However, we hope to gradually add new streaming sources over time.
The primary focus for this utility is to let the user quickly set up their “playlist” or stream and then hide the utility. In this way, lumina-mediaplayer doesn’t distract the user from whatever they are trying to accomplish. It is definitely not trying to be a flashy “do anything” multimedia player, since there are plenty of those already available for download. As such it requires very few system resources and also associates with a system tray icon so that it can be “closed” to the tray for truly minimal distraction. However, the system tray icon can also be set to provide notifications to the user when Pandora changes songs or the local playlist moves to the next item, ifdesired.
What started this project was actually my normal day-to-day workflow. As a software developer for iXsystems, I tend to sit at my office computer for long stretches of time while working on projects related to TrueOS or FreeNAS. A bit of music in the background or a Pandora radio stream always helps me keep focused on the task at hand. For a long time I had been using another Pandora streaming client on my TrueOS desktop, but it was very fragile with respect to underlying changes: LibreSSL versions for example. The player would regularly stop functioning for a few update cycles until a version of LibreSSL which was “compatible” with the player was used. After enduring this for some time, I was finally frustrated enough to start looking for alternatives. A co-worker pointed me to a command-line utility called “pianobar“, which was also a small client for Pandora radio. After using pianobar for a couple weeks, I was impressed with how stable it was and how little “overhead” it required with regards to extra runtime dependencies. Of course, I started thinking “I could write a Qt5 GUI for that!”. Once I had a few free hours, I started writing what became lumina-mediaplayer. I started with the interface to pianobar itself to see how complicated it would be to interact with, but after a couple days of tinkering in my spare time, I realized I had a full client to Pandora radio basically finished.
This was not enough for me to include it in the Lumina project though. I needed to make the utility useful even if pianobar wasn’t available on the system. Because of my experience with the QtMultimedia framework after writing the Insight file manager, I knew that the next step was to implement local file playback using pure Qt5 since that was already required by the desktop itself and would not require anything extra. This would give the utility some lasting usefulness, even if Pandora Radio or pianobar up and vanished the next day for some reason. Once this was implemented, I determined that it was time to promote this project from a “hobby” project into a full member of the Lumina desktop’s “extra” utilities.
I am still going through the utility and polishing it up, but it will soon be enabled in the default build for the Lumina “desktop-utils” category and then distributed to TrueOS systems. Once that is finished, I’ll also start the release process for the Lumina desktop itself and hopefully announce version 1.3.0-Release of the Lumina desktop environment a couple weeks later.
~~ Ken Moore ~~
Lumina Desktop Founder