Addendum, 1/20/11: If you’re an Orange France customer you can call customer service and they’ll push an update to your phone that will fix the EVO’s 3G streaming problems. If you’re in the United States and use Sprint, call their customer service number and they’ll push a fix to your phone, too.


Hey Sharks — accompanying the release of our Android update (2.2) is this letter from @skylerslade, our head Android developer:

We’ve received a lot of complaints from HTC EVO users regarding the infamous “Unknown Media Player error.” After a thorough investigation, we’ve identified some of the problems that prevent Grooveshark from working as it should. Our 2.2 release addresses some of these problems, but we haven’t been able to make playback completely stable on the EVO because of bugs in the phone’s software. We’d like to keep our users in the know, so here’s what we’ve discovered about the problems that prevent Grooveshark from working properly:

First, the EVO has problems reading from a small proxy server that is built-in to the Grooveshark application. When the app caches or pre-fetches songs in your queue, or when you offline a song, we encrypt the songs’ files as we save them to your SD card. The Android platform cannot play these encrypted files directly so we proxy everything through this small web server on “localhost.” The app can connect to and read the first few bytes of a song from this proxy, but the platform’s “MediaPlayer” object quickly disconnects and complains of a read error, which the app reports to the user as an “Unknown MediaPlayer error.” This error doesn’t always occur, but often it does. This specific problem isn’t unique to the HTC EVO, but it occurs more frequently on them. We spent a lot of time trying to figure out why using this local proxy to play songs doesn’t work. Many streaming audio apps take this same approach and it works for us on most phones – just not the EVO.

Included in today’s update is a fix that will allow Grooveshark to recover from proxy server failures, and if we’re unable to recover, the app will connect directly to our stream servers to play your music. This error detection, recovery, and fall-back will all happen automatically and transparently, which means that streaming should always work, but songs in your queue may not be cached as you listen to them and you’ll probably still have problems playing any “offline” or already-cached songs. If you use an EVO, we recommend that you disable song caching by opening Settings, selecting “Song cache” and un-check the “Keep a cache of recent songs” option. Also be sure to press the “Clear song cache” from settings too.

Playing from this local proxy isn’t the only problem that’s affecting EVO users. A few weeks ago HTC released an over-the-air update to EVO phones. Whatever this update was intended to do, it had the side effect of breaking music streaming over 3G for apps like Grooveshark, Mog, Rhapsody, Rdio, and Sirius, though music streaming still works over Wi-Fi. If you’re curious about the update and what it broke, there’s a lengthy discussion about it at their forums.

While we wait for HTC to release a fix, we’ve developed workarounds that you can use to listen to music on Grooveshark over 3G. Instructions for Windows users have been posted to our Help Page. Though these instructions are only for Windows users, you should be able to perform these steps on other operating systems, provided you can find comparable tools. As we find instructions for other operating systems we’ll post them too.

Today’s update to the Grooveshark Android app contains not only significant improvements to playback but fixes for Playlist and Favorite synchronization, improvements to application liveliness and responsiveness, and other things. This update is just the first of our attempts to find other workarounds to these problems.