format; rather, media is represented as sources (themselves obtained from URL's) that can be read in and played, processed, and exported (though not all codecs support processing and transcoding). A Manager class offers static methods that are the primary point-of-contact with JMF for applications. Criticism and alternatives Many JMF developers have complained that the JMF implementation supplied in up-to-date JRE's supports relatively few up-to-date codecs and formats. Its all-Java version, for example, cannot play MPEG-2, MPEG-4, Windows Media, RealMedia, most QuickTime movies, Flash content newer than Flash 2, and needs a plug-in to play the ubiquitous MP3 format. While the performance packs offer the ability to use the native platform's media library, they're only offered for Linux, Solaris and Windows. In particular, MS Windows-based JMF developers new to JMF often expect support for some newer formats on all platforms when such formats are only, in fact, supported on MS Windows. While JMF is considered a very useful framework, the freely available implementation provided by Oracle is suffering from a lack of updates and maintenance. JMF does not get much maintenance effort from Oracle; the API has not been enhanced since 1999, and the last news item on JMF's home page was posted in September 2008. While JMF is built for extensibility, there are few such third-party extensions. Furthermore, content editing functionality in JMF is effectively non-existent. You can do simple recording and playback for audio and video, but the implementation provided by Oracle can do little else. Platforms beyond those that Oracle provides support to are left to their corresponding JRE vendors. While Sun still provides a forum for discussion of its implementation, there have been several efforts to implement open-source alternatives. Alternatives Depending on a developer's needs, several other libraries may be more suitable than JMF. These include: Freedom for Media in Java (FMJ) An API-compatible with JMF open source alternative QuickTime for Java IBM Toolkit for MPEG-4 Jffmpeg vlcj gstreamer-java Cortado, a complete player for Ogg Vorbis and Theora in a Java applet Directshow <> Java Wrapper JLayer MP3 library Video4Linux4Java Code example The following example shows an AWT file-selection dialog, and attempts to load and play the media file selected by the user. import javax.media.*; import java.io.File; import java.awt.*; public class TrivialJMFPlayer extends Frame { public static void main (String[] args) { try { Frame f = new TrivialJMFPlayer(); f.pack(); f.setVisible (true); } catch (Exception e) {