Newsletter sign-up

Sign up for our technology specific newsletters.

Enterprise Java
View all newsletters

Email Address:

Progress on the JMF and Java Media APIs

Learn about JMF 2.0 and how the Java Media APIs have changed in the past year

My first JavaWorld article way-back-when was on the Java Media Framework (JMF). As the various Media APIs have matured, I feel that things have come full circle. Therefore, I'll dedicate my final Media Programming column to a revisit of JMF and the general state of all the Java Media APIs.

There have been some notable changes in the JMF and other Java Media technologies, the companies developing implementations of them, and their availability for developers. This article updates the material from previous articles as appropriate.

An important reminder: Java Media Framework is a specific API for synchronizing multimedia streams (files, network streams, and so on). It is one of several of the Java Media APIs, which also include Java 2D, Java 3D, Java Speech, and so on. I refer to the Java Media Framework as the JMF, reserving the term Java Media for the entire collection of multimedia APIs.

JMF history and basics

Of the JMF 1.0, aka Java Media Player API, I wrote the following in April of 1997 (see Resources):

The Java Media Player API, a portion of the Java Media Framework (JMF), lets Java programmers easily embed audio and video within applets and applications. Both static and streaming multimedia are supported from any valid URL. JMF players may be controlled by other players, providing for synchronous playback of multiple audio and video samples.


This information still holds true with the updates and additions of the last two years. JMF, however, has evolved new capabilities and grown in scope, especially with the upcoming 2.0 API release (expected in the second half of 1999).

JMF industry players

First, let's have a look at the industry players. Sun, Silicon Graphics (SGI), and Intel designed and specified the original JMF 1.0 in mid-1998. In the interim since the initial version of the API, both SGI and Intel have withdrawn from the JMF specification process. For a while, there was significant concern in the JMF user community that Sun was the only vendor supporting JMF. This situation was undesirable.

Luckily, in late 1998 IBM stepped in with interest in the JMF. Shortly after IBM joined Sun, an all-Java implementation of the 1.0 API was released (December 1998). This implementation, known as JMF 1.1 for Java platforms, supports a limited but significant subset of the content and protocol types supported by the Win32 and Solaris-native JMF 1.1 implementations (known as performance packs). The availability of an all-Java JMF 1.1 was a major milestone for JMF, in that the technology became available for any Java 1.1-compliant or Java 2 runtime. In fact, the JMF 1.1 Java implementation is even available in a Web-oriented version with tools that allow developers to include only the relevant JMF classes in a JAR file for download with their JMF applets. This allows one to deploy JMF-based applets on a Web server for use by any Java 1.1-compliant browser. Both Netscape and Microsoft support Java 1.1 -- and therefore JMF 1.1 for Java -- in their recent browser releases of Navigator and Internet Explorer, respectively.

Resources
  • Related reading in JavaWorld