HTC One X UPnP Media Server, Renderer, and Control Point
My requirement: connect my laptop to my amp and use my One X to view a UPnP library, create a playlist, and send it to the laptop to play. Pretty simple you would have thought. Like all things, it is, when you know how. A bug in the One X’s wifi implementation made this a bit more difficult than it should be. This post will outline how to set this up, and how to workaround the bug.
First you need a UPnP media server to browse the library from your One X and a UPnP renderer to play the library to. The latest stable version of the foobar2000 application with the foobar2000 UPnP component added will perform both tasks. Download both, install foobar2000, then copy foo_upnp.dll into the components folder where foobar2000 was installed. Start up foobar2000. You will see a “Library” option added by the component. Go to “Configure” to add folders to be monitored by the library. You now have a server and renderer. How can you control these from your One X? You need a control point.
There are many UPnP applications out there, of which I have found BubbleUPnP to be the most intuitive, useful, and it’s pretty slick looking too. Install it on your One X, open it, and go to Devices. Here you should see options for your local renderer and the foobar2000 renderer. Select it. For the library select foobar2000 media server. Now go to Library to browse your music collection. When you find an album you want to play long press to bring up a menu – Enqueue or Enqueue and Play are the two I use most often, which will add the album to the current playlist and optionally play the first track on the renderer, i.e., your laptop. Bob’s your uncle! Your music will now be playing on your laptop. If you own an android phone or tablet other than the One X you are all setup with some convenient library browsing loveliness, you can leave now.
Alas, this is not the end of the story for the One X. If you now let the display sleep the music will keep playing merrily along, and you will still receive email. When you wake up your phone to change the playlist or pause the track you will find your phone’s wifi goes skewiff. You cannot use BubbleUPnP, nor surf the web. The only way I have found to fix this is to restart BubbleUPnP, in fact with the original 1.26 firmware I had to restart wifi on the phone too. A bit of a nuisance to say the least. There is a somewhat better workaround, and actually a less battery draining way of doing this. Whilst searching through the BubbleUPnP settings I found the Show OpenHome only option. What is this OpenHome? The developer of BubbleUPnP has created a BubbleUPnP Server which can create an OpenHome renderer from a normal one, allowing the renderer’s playlist to persist even when the control point (BubbleUPnP on the phone) is not connected. Perfect. So now rather than letting the wifi get killed I simply start playing to the renderer then close BubbleUPnP until I need it again.
Any questions let me know in the comments.