Skip to main content

Results: Coding an Android music player in a weekend

The full story with the challenge I gave myself can be read here: original post

TL;DR - I had no experience coding for the android but the API looked easy enough that I challenged myself to write a music player in a weekend.  I posted throughout the weekend showing my progress.  Here is a video of the end results.  I spent roughly 26 hours coding 1250 lines of code.
 
Note: I listen to more than just metal. The scanner only happened to get the portion of my collection that was death metal before I stopped the scan.


At the beginning of the challenge I gave myself the following goals:

Primary goals:
-Play any song that is a supported format (obviously) - DONE
-Basic controls: play/pause/fast forward/rewind/next/prev - DONE
-Create/View a simple playlist - DONE
-Ability to browse artists - DONE
-Ability to browse albums - DONE
-Show basic info on screen while playing - DONE


I would have to say this challenge was a success.  I didn't get around to doing any of my secondary goals because I decided to go out on Saturday night instead of staying in to code.  I plan on continuing development on this and eventually making it available on the market.

You can download what I've done so far here: gmmp-0.03-alpha.apk  It will crash if the orientation changes while the app is running, but otherwise it runs quite well on my Archos and in the emulator.  I recommend playing with it in an emulator because I honestly have no idea how it works with phones or any device not running 1.6.  Don't blame me if it messes up your device.  You have been warned.

Popular posts from this blog

GoneMAD Music Player 4.0 released and is now free!

GoneMAD Music Player 4.0 is now fully rolled out!  After 14 years since initial release as being a paid app, I've decided to try something different and switch to being free with ads.  The market is completely different nowadays compared to the early 2010s.  Ads are everywhere and users typically do not want to pay for apps / games / etc.  But don't worry, those users who previously purchased the unlocker or in app purchase unlock will continue to get an ad free experience.  New users will also have the option to purchase an in app purchase to permanently remove ads.   Note: There is a bug with 4.0 where users with the standalone unlocker may see ads when they first upgrade.  You typically fix this by just force stopping the app and restarting.  Ads should not come back after that.  Alternatively you can contact gonemadsoftware@gmail.com and I can help you out as well.  I have no intention on making users who already paid see ads. W...

1.4.8 - 24/96 + 24/192 FLAC support

Note that external dsp support is now off by default and you must enable it in the preferences. 1.4.8 (03/15/2013): -Improved resampling: sample rates higher than 48khz now supported and multi channel audio is now downmixed to stereo (for most formats) -Musepack file now play back at the correct volume -Fixed another issue with certain files playing back at incorrect speeds -Added /mnt/external_SD and /mnt/external to the default external sdcard location list -Added File Extension (%ext%) and Next File Extension (%next%) to the custom metadata options -Re-prioritized local image search to pick images named 'folder' first, then 'cover', then anything containing 'front' -Added skipping/stuttering warning when increasing the equalizer quality setting -Added option to toggle shuffle queue and collection individually to the gesture and singlebutton action list -Clicking on an album cover in the song list view will now follow the Song Actions preferences (...

4.1

4.1 marks the end of life for Android Lollipop (5.0/5.1).  Some of GMMP's dependencies require the SDK level 23 or higher, so I was forced to also increase the min sdk to 23 (android 6.0).  According to the google play store statistics there are around 50 or so users on 5.0/5.1, so I do apologize for dropping support.  10 years of support is fairly decent nowadays anyway.   I've also increased the target SDK to android 16.  With this increase I had to account for the forced "edge-to-edge" that google is making all apps support.  If any UI element ends up behind the navigation buttons, certainly let me know.  I am pretty sure I did everything correctly but I only had one device that I was able to test on (pixel 6a) 4.1.0 (2025-09-03): Updated target SDK to Android 16 Updated dependencies Updated translations