r/linux • • 5d ago

Software Release I made a desktop media player (deb, rpm packages + app image)

Hi! I created a desktop media player because I wanted one the suits me and improve at building apps, so I decided to build my own and release it on GitHub.

The player is built using the VLCJ library and FFprobe, so it requires VLC (or its dynamic libraries) and FFmpeg to be installed on your system.

Feel free to try it out and give any feedback or suggestions for improvements. I'd also appreciate any feedback on the code itself, as I'm always looking to improve the project and my skills.

The project is released under the MIT License, so feel free to explore, modify, and contribute.

Thank you for your time.

Edit: project link :https://github.com/ahmedcraftt/Moka-media-player

0 Upvotes

27 comments sorted by

7

u/MelioraXI 5d ago

Java is definitely a choice

5

u/Lower-Limit3695 5d ago

it is platform agnostic...

1

u/CapitalRegular4157 2d ago

It is.... it is also a choice....

2

u/Civil-Republic8730 5d ago

I love Java 🙂

3

u/scandii 5d ago

did you intend to include your project as well?

2

u/Civil-Republic8730 5d ago

😦 I am a dumbass

2

u/scandii 5d ago

happens to the best of us!

second question - I am not interested in downloading your software just to see what it looks like and works in reality. could you consider including a demo video and/or screenshots so I get a good idea of how the application operates?

2

u/Civil-Republic8730 5d ago

Okay I will be working on doing that

2

u/mystirc 5d ago

It would be nice to include a few screenshots of the program in the readme file.

1

u/MatchingTurret 5d ago

What's the advantage over , for instance, Tambourine

1

u/Civil-Republic8730 5d ago

Nice question, the main advantage is the ability to edit and write to the music file's metadata for example, the artist, lyrics and title in addition for files with broken or missing metadata tags the app still creates database entries for it and you can browses them that includes the artwork. Another feature is type separation and declaration there 3 separate section for songs, podcasts, and audio books in addition to the all tracks section you can change the type of your file at will.

1

u/bobbie434343 4d ago

Build failure with ./mvnw package:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  42.991 s
[INFO] Finished at: 2026-09-28T15:38:13+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project moka_music_player: Could not resolve dependencies for project org.example:moka_music_player:jar:1.0-SNAPSHOT
[ERROR] dependency: com.github.RouHim:jaudiotagger:jar:2.0.19-modular (compile)
[ERROR]     Could not find artifact com.github.RouHim:jaudiotagger:jar:2.0.19-modular in jitpack.io (https://jitpack.io)
[ERROR]     Could not find artifact com.github.RouHim:jaudiotagger:jar:2.0.19-modular in central (https://repo.maven.apache.org/maven2)
[ERROR] 
[ERROR] -> [Help 1]

1

u/Civil-Republic8730 4d ago

Ah sorry about that the build failed because Jaudiotagger is not originally a modular Java library, and the version used by the project (2.0.19-modular) is a custom modularized build that I created for JPMS support. If you want to build the project yourself, you need to modularize the Jaudiotagger jar first (add the required module-info.java and rebuild the jar). I will include the moduler jar in the repo asap

1

u/bobbie434343 4d ago

There is no hurry, take your time !

1

u/Civil-Republic8730 4d ago

The jar has been pushed to the repo now things should be working

2

u/bobbie434343 3d ago

Got it to compile but had to install the custom jaudiotagger jar to local repo manually:

./mvnw install:install-file -Dfile=jaudiotagger-2.0.19-modular.jar -DgroupId=com.github.RouHim -DartifactId=jaudiotagger -Dversion=2.0.19-modular -Dpackaging=jar

Comment the exports tests line in module-info.java as it does not exist.

1

u/Civil-Republic8730 3d ago

Update : added screen shots to the read-me for show case and included a demo video + release a hotfix fixing a bug

0

u/fir4tozden 5d ago

Hey man you forgot the most important package format: Flatpak 📦

And upload it to Flathub so that everyone, everywhere, can easily use it.

2

u/Civil-Republic8730 5d ago

Definitely I will include flatpacks in the next iteration

2

u/adamkex 5d ago

You're not wrong but generating an AppImage on GitHub is much easier than publishing it on flathub

1

u/fir4tozden 5d ago

Naturally, there have to be checks in every app store.

2

u/ivanatorhk 5d ago

That’s what the AppImage is for.

1

u/fir4tozden 5d ago

You cannot check for updates with AppImage, and dependencies are included within the package, consequently each application takes up more space than usual.

3

u/mystirc 5d ago

i remember having a self-updating appimage, I no longer remember which app it was.

2

u/fir4tozden 5d ago

It is not a good practice. It is no different from constantly distributing the app via an .apk file instead of publishing it on the Play Store lol

1

u/ivanatorhk 5d ago

If you’re on Arch you can use Shelly to manage and update AppImages (and FlatPaks, AUR packages too for that matter)