I've made some more improvements to the audio engine used in my radio apps. I am now able to successfully "stitch" two streams together seamlessly. So, if you are listening to an audio stream, lose your connection and reconnect again before the audio buffer runs out, the app will be able to detect where the two streams overlap and will seamlessly join them together. It will now be completely undetectable that the connection was even lost - assuming there was enough audio data buffered.
I need to do some more extensive testing to ensure I've not introduced any other problems, but so far this is looking/sounding good.