Post date: Jan 30, 2012 10:19:45 AM
Haven't updated for a long time because I was trying to figure out the next step.
I decided on going with Android but did not write about it because I wasn't sure where it would take me.
As of right now, I have developed most of the android version but still need to pretty it up and to add one feature which I thought would be very useful and interesting. Anyways, this report is on Android issues I encountered.
1. Android does not play .wma (now, I understand that older versions of Android did play .wma previously). This is probably the biggest issue because many radio stations use the .wma format.
2. Android mediaplayer API does not provide for metadata present in the audio file or stream. This again is quite inconvenient take for example a "broadcast" of a list of songs. Information like Title is available in the metadata and can be used to provide the listener with valuable information. There are some suggested ways around this but it is going to be quite tricky because this application is a multi-format application so technically, I would need to write metadata access functions for all formats! I will look into this again.
One good thing though, I had previously anticipated that the playlist parsers would be difficult. Surprisingly, they turned out quite easy because of the power of the android / java libraries and the fact that I only needed a limited set of information. I averaged 1 format per day and that includes figuring out how they work! Something I didn't believe I could do at all! To date, I have covered .m3u, .pls, .xspf, .wax, .ram playlist formats. .wax and I can't even play .wma! Also, I structured the program so that the parsers would work recursively. So now any format of playlist can redirect to any other format and play any of the allowable media!
Another good thing. The application uses much of what is available in Android and there is a lot available! e.g. in vRdo and mVrdo, I basically built the Station playlist parser and logic needed to select the stations from ground up. For Android, I used the on-board sqlite3. So the only programming I needed to do was to wrap the sqlite3 commands in suitable functions. Xml parsing was a cinch with XmlPullParser and I was very tempted to make use of regex for the flat playlist file parsing but fortunately, the logic was simple enough.
Last thing, I couldn't think of a short name for it so I'm just going to call it a Radio. But it is so, so very much more! Can't reveal the details as yet :-)