Let’s say you want to develop a proof of concept streaming mobile video app. We’ll also say that you’re not in a position to go through the whole BREW authentication process and don’t want to buy all the Qualcomm tools needed to actually get your BREW app on a handset.
Well, you can go with Symbian. But if you’re in the US and want to do a streaming video app that will most likely work where you’re demoing, you’ll want to stick with the Sprint or Verizon EvDO networks – and there’s a severe lack of S60 phones on those carriers.
J2ME? Totally possible with MMAPI, but I would be afraid of performance on many phones. Has anyone played with this enough to give a little assessment?
With these points in mind, Windows Mobile suddenly sticks out as a possibility. But what are the options there?
Well, you could try getting the good ol’ standard FFMPEG to compile and work on Windows Mobile – I did. After some hours of sifting through various instructions, installing MinGW to compile the damn thing, and struggling with problems with the Visual Studio 2005 commandline linker, it turns out you need to do a lot of source work to make the thing work under Windows Mobile – a ton of effort. I was soured very
quickly.
I then started looking at projects out there already. One of which is TCPMP. They formed a nice little company around the project, bringing their codecs to market. I spoke with them on the phone, and they have some very cool products for people who want to get serious about H.264 across multiple mobile platforms. But they are commercial, and we’re just doing a demo for now. So they stay on the list for the production model.
Getting a little discouraged, I came across this: the Windows Media Player ATL Object. Bingo!
Unfortunately, there’s no wrapper for .NET for it yet, so I was stuck coding in Win32 – something I’ve gone to great lengths in my career to avoid. But this was just too much work done for me already to pass up.
So Visual Studio 2005 and me are slowly becoming friends acquaintances. After going through the hell that is Windows COM, figuring out how to arrange dialogs to place it neatly in an app with my own widgets next to it, and generally just learning how to code Win32, the object works as advertised. You get all the file formats that WMP standalone supports on the device, and you get access to network streams as well. It really is a time saver. From not knowing Win32 at all, I was up and running with my own custom app in less than a week. If you know Win32, it’s like a day.
There are surprisingly few broken bits. The blue player control bar at the bottom can be removed, so that you just have a black screen. However, it doesn’t work in the emulator, or on PPC 2003 devices. It’s only worked on two different WM5 devices that I’ve tried. But I can deal with that. It’s a demo after all.
If this was going to be produced for real, I’d be leaning toward the Core Codec library above, and would get down and dirty writing my own portable player. But for this demo, I don’t think it could’ve gone any faster than using the WMP Object. Anyone care to differ?
Now if they just include the control in .NET – we’ll be all set. They already have a web browser control that gets you pocket IE in your app in two seconds. I’d love to see WMP10 in there too.
2 Comments so far
Leave a comment
Smile…
“One world, one web, one program” — Microsoft promotional ad
“Ein Volk, ein Reich, ein Fuehrer” — Adolf Hitler
…
Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>