The problem is not the issue with the User-Agent sniffing, but the fact that SHOUTcast servers do not send standard HTTP responses.
A normal HTTP response starts off with a status line that looks like this:
HTTP/1.0 200 OK
SHOUTcast servers send this instead:
ICY 200 OK
This works for many HTTP clients, but more and more HTTP clients break on a response like this.
The solution is to stop using SHOUTcast. Icecast is a good alternative. I have written my own called AudioPump Server to help with compatibility in browsers as well as Android clients.
If the stations you want to play aren't yours, you would have to proxy that playback through your own server to fix the status line problem.