views:

317

answers:

8

On which technological basis would you implement a multimedia app, which has to meet the following requirements:

  • Platforms: Windows XP/Vista, Mac OS X, Linux (nice to have)
  • Should play audio (mp3) and video (H.264 would be great) from local disk

I looked into things like Cocotron which is a cross-platform Objective-C API similar to Cocoa, but I am not very confident if it would be the right choice.

Would it be simpler to have a separate code base for each OS (WPF on Windows, Cocoa on Mac OS X)?

I also experimented with browser-based apps (Flash-Player, accessing local files through a streaming server provided by VLC) but came to the conclusion, that this would be a very fragile solution.

How about Mono?

+5  A: 

One thing I would consider would be to potentially write your core engine in some sort of multi platform fashion, maybe in python, but probably in C, using libraries that have binaries available on all platforms. Then, multiple frontends for each platform, i.e Cocoa for OSX, Windows specific code, and GTK for linux.

However, an easier solution from a maintenance point of view may be to just use as cross platform toolkit like QT

nstehr
+1  A: 

Why not look and see how VLC did it? http://www.videolan.org/vlc/

Stephen Hoffman
A: 

I have to admit, I would think that Flash (or even a blast from the past, Director) would be far less fragile than Mono. They also don't require a large runtime install.

I'm not speaking of Flash running in a browser, I'm speaking of Flash running as an application on the local machine. Linux support would, admittedly, be sketchy.

mmc
+1  A: 

Adobe Air (Flex/Actionscript) would probably be your best bet, with MONO (.NET) coming in close behind.

They're all pushing cross-platform, multimedia, out of browser experiences it seems like.

mirezus
A: 

If you are just writing an application that needs playback of H.264 and Mp3 file, I would recommend Adobe AIR. You'll get support for H.264 and AAC audio out of the box, and be able to deploy on Windows/Mac/Linux very easily.

If you want a more traditional approach, I would recommend using QT as the Cross Platform UI framework.

Nick Haddad
A: 

We use WinForms for Plastic

pablo
+1  A: 

Yea, I wouldn't recommend Cocotron at this point, there is no support for audio/video.

You might take a look at using QuickTime as it works on OSX and there is an SDK for Windows.

Christopher Lloyd
+2  A: 

I would suggest:

mouviciel