blog.reis.se

It's all about looks

Untitled-2Today the Smooth Streaming Client was updated to also work for the Windows Phone 7 and looking in to video streaming for an upcoming project this was indeed very good news. (Lets just hope the Silverlight Media Framework will be upgraded as well!) The first test I did was to check how easy it would be to at least add and view a streaming file in Windows Phone 7.

In my case I wanted to check if it was possible to play in a mixed view, not only a full screen video view. So I created a simple application with both a video and some surrounding text. Looking something like the image to the right, with live video in the small player.

First things first, download the client software from the above link and install it. After that add a reference to Microsoft.Web.Media.SmoothStreaming and add the reference in the XAML as well:

xmlns:ss="clr-namespace:Microsoft.Web.Media.SmoothStreaming;
assembly=Microsoft.Web.Media.SmoothStreaming"

The its just a matter of adding the SmoothStreamingMediaElement in the code and point the SmoothStreamingSource to a smooth streaming video source. However, here comes a little problem (that a proper prototype would have solved, hrm, Microsoft). The emulator doesn't support that many codecs, even if the phones will support a lot. But a normal SD quality VMA encoded smooth streaming source did the trick for me. The MSDN documentation has most of the information needed to get it right. My final bits an pieces for the smooth streaming media element lookes like this:

<ss:SmoothStreamingMediaElement 
  AutoPlay="True" 
  SmoothStreamingSource="http://<server>/<file>.ism/Manifest"
  Height="98" />

Of course the [server] and [file] content should be set to something you have access to. The biggest problem for me was to get hold of an appropriate stream source, luckily for me (as I didn’t have the time to set one up myself nut it shouldn’t be that hard) I was able to use a stream from an internal project just to test things out.


As soon as I get my hands on the real hardware I will try it with Big Buck Bunny

// Håkan Reis


Soundbridge + Spotify

For some time I have bee using Spotify as a music service. And it have worked out very well. With one account as a premium account and then some extra free accounts its easy to play around and create some playlists and the connect and play from the premium account.

The other thing I use a lot at home for music is my Soundbridge, when I bought it, roku labs was making it. Then it was sold through Pinnacle, unfortunately I think its discontinued now. Anyway, when Windows 7 came I could also just look up a what music I like to play, and just send the along to play to my Soundbridg. Compared to other locked in standards, that is just brilliant.

The problem

But now that I have one device and one service that I really like, I would want them to play nice together, I want the full catalog of Spotify accessible from my Soundbridge. What I really would like is to have Spotify as a uPNP server implementation, then you could easily search the full database and have the playlists ready directly. But that’s maybe for the future,

The second best thing, however, would at least to be able to stream what you got from your server to the Soundbridge, or any other streaming device for that matter. After reading several hacks and looking at a lot of solutions I found two that works for me.

Two streaming solutions 

The first is for my work computer, where I alternate from OS X and windows 7 and when I’m on OS X, I can use a commercial app called Nicecast from rogue amoeba (the also make airfoil). It’s very easy to set up but you need to start Spotify from Nicecast and you can't just execute it as usual. What more is that it doesn't code the current song name and artist to the stream. Aöpart from that it works well, it even supports streaming to the world so it means more than one receiver. But for my setup I have Windows machine as a server, so why spend $40 to only stream from my work computer?

So I go with the second and even simpler solution, a little DirectSound wrapper called dsbridge. What this does it taking the output, encode it using lame ENC and then streaming it out. It even shows the current playing song and artist together with the source (Spotify). It’s quite intelligent to, if a receiver connects to the port it silences the local output and if you stop the streaming it just restores the normal output (can be configured). It's an early hack - single stream only but sound quality is ok, and there is something to its simplicity I really like. Very nifty. 

Hope you will be helped with this if you are looking for a similar solution.

// Håkan Reis

PS: Is there anyone with a solution on how to remote control Spotify from an iPhone? :)

Update:  Spotify Remotless is an iPhone app that works together with a helper and remote controls Spotify ($4). Doing a decent job, but the effect is a bit delayed due to the re-coding dsbridge needs to do before it streams it out. It even enables you to tweet the current song, nice twist.