- Create some form of database of track information to allow easy selection via a user interface.
- Decode and play the media files on the server and access track metadata (MP3 tags etc) to populate the track database.
- Create a User Interface that was accessible via the devices I had available (PC based browser running on lo resolution NetBook and an iTouch)
- Provide some form of service middleware to allow the UI to obtain data and control whats going on on the Server.
2) As I was going to be writing java code the most straight forward answer was to use an implementation of the javax.sound API. As luck would have it there is a very nice implementation available http://www.javazoom.net/index.shtml. Using JLayer, MP3SPI, VorbisSPI and Tritonus I was able to write java code that could obtain the metadata stored in the media files and also decode and play these files on the PC.
4) As I was already writing java code in the form of a Web Application the solution for 4) was to write the service layer with servlets supporting a REST like API. The response format is JSON.