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

1 2 Page 2
Page 2 of 2

As a reminder, JMF11Applet example code (along with all the example code from previous Media Programming columns) is available from the "Media Programming Resources" section of my Web site (see Resources).

Progress on all Java Media fronts

In the two years since I began writing about Java Media technologies, Sun and its partners have made significant advances in the state of all the Java Media APIs. APIs such as Java 2D and Java 3D are fully specified and have had shipping implementations for many months. Others, including Java Advanced Imaging and Java Sound APIs, have specs and are available in early access implementations, but are still moving slowly toward release. Java Animation and Java Collaboration -- both mentioned in the inaugural Media Programming column -- have since been withdrawn or replaced with a toolkit product, respectively.

To review my June 1998 summary of the state of the Java Media APIs, see the inaugural Media Programming column, "Introduction to Java media programming." (See Resources.)

In Table 1 below, I update the status -- as of May 9, 1999 -- of all the Java Media APIs.

Java Media APIAPI typeAPI specification (version)FAQReference implementation (version)Mailing list
Java 2D Core Java 2 platformYes (1.0 is part of Java 2 APIs)YesYes (included in Java 2)Yes
Java 3D Extension, requires Java 2Yes (1.1 released)YesYes (1.1.1 released)Yes
Java Media Framework ExtensionYes (JMF 1.0 released for Java 1.1 or 2; JMF 2.0 in 0.5EA)YesYes (1.1 for Java, Win32, Solaris)Yes
Java Sound Engine, Core Java 2; API, ExtensionEngine, yes in Java 2; API, 0.86EAYesEngine, yes (in Java 2); API, 0.86EAYes
Java Speech ExtensionYes (API, 1.0; JSML, 0.5Beta; JSGF, 1.0)YesNo, but IBM and Lernout & Hauspie implementations existYes
Java Telephony ExtensionYes (1.2 released; 1.3EA)YesNo, but IBM and Lucent implementations existYes
Java Advanced Imaging ExtensionYes (beta)YesYes (beta)Yes
Java AnimationCanceled; never released    
Java CollaborationReplaced by Java Shared Data Toolkit     
Table 1. The state of Java Media APIs (as of May 9, 1999)

Note that Table 1 refers to information publicly available from Sun and does not include licensee-only releases or information. Most of this information came from links available from Sun's Java Media APIs home page or directly from the individual APIs' home pages, linked to in the table above.

In the coming months, expect to see the Java Advanced Imaging (JAI) and Java Sound APIs finalized and released. Java Sound API may very well make its way into a future release of the Java core platform, but I expect that JAI will remain an extension API. Java 3D will continue to be updated and should see a finalized release supporting DirectX for Win32 systems as the underlying graphics engine, along with the already released OpenGL-based implementation.

On a related note, shortly after publishing "3D graphics programming in Java, Part 3: OpenGL," last month (see Resources, I learned that Arcane has in fact decided to continue to make its Magician Java-to-OpenGL binding available. In fact, Arcane has updated its release, naming it Magician 2.0.0, with several of the nice features discussed in last month's column (and corresponding to the previously planned name of 1.2). Arcane also updated its licensing model to allow for free use of Magician in freeware products. Well done Arcane! (See Resources for more on Arcane.)

Conclusions

After two years of intense marketing, discussions, and work on specifying APIs and reference implementations, where does Java Media stand today? I believe the set of APIs is now fairly well understood. Each API now has at least early access API specifications and implementations. Most have seen at least one final release. Most of the remaining work on the APIs involves the evolution of new capabilities -- a more manageable and predictable process than we saw while waiting for the first versions to be released.

In short, the Java Media APIs have matured. It is now appropriate for developers to consider their capabilities and requirements when building media-enabled software systems. With a few key exceptions of APIs in early development, it is now safe to use the majority of the Java Media APIs to develop products.

I have therefore decided to conclude the Media Programming column with this article. I will, however, continue to track the technology, update the Media Programming FAQ, and contribute Java Media-related articles to JavaWorld from time to time as appropriate. So, please continue to e-mail me your Java Media questions.

Next month I'll inaugurate a new column on another emerging Java technology space: Java devices and gadgets. If you want to learn how to write portable Java code for consumer devices and embedded systems, look for the Java Device Programming column in future issues of JavaWorld.

Learn more about this topic

  • Related reading in JavaWorld

1 2 Page 2
Page 2 of 2