Post date: Apr 02, 2016 5:3:55 PM
On our custom tuned linux based system, We use a central server we designed with the advanced language called Golang. This development platform developed by Google themselves is almost as fast as the C++ language but its strong suit is network communications. It can handle multiple accesses and tasks especially well.
We then picked a tried and true programming library from None other than VLC of video player fame. Besides VLC being strong in Video management and playback, its audio capabilities have to be good also. Not needing the video functions the VLC package is customized for audio, and one of their very strong capabilities is media file conversion, stream handling from internet radio and one of the best cd / dvd playback handlers in the linux community. VLC also handles pausing and skipping track position very well. In fact we experienced the ability to rewind an internet stream to a point.
Communications with the client application on your phone, pc or mac is done through http, the same access protocol as the internet. But with a structured way of talking using the REST protocol which is a set of rules to keep every thing honest and if there is a miscommunication its easily detected.
We use Delphi (Rad Studio) as our client application development platform. Which allows us to make a program once and use it on all devices such as android, windows, mac and iphone.
Our communications with the codec to change things like volume is almost a direct channel, theres little if any conversion to tell the codec to turn up the volume or adjust the equalizer. This makes it fast communications wise and its easy to make changes for the remote control client to use different commands that we may add for future codecs.
We took a hard look at things especially stability and efficiency and our server in tests has been up 20 days until a power surge rebooted it.
Its not perfect, but we want to make it as close to that as possible in the future.