The Only Book that Covers Java Media Framework 2.0

Useful but not very user-centric, focussed on API internals and custom service development, good examples.


The Java Media Framework is maturing rapidly. Version 2.0 brings with it new functionality and flexibility, but with that comes a level of complexity. This book tries to clarify what it means to work with the JMF, developing new media formats, delivery protocols and players to render your data. More advanced features like MediaProxies which allow format translation and filtering are covered, along with special effects and a look at the new plug-in architecture in JMF 2.0. Though the book was written before the final release of JFM 2.0, it is one of only two books that cover JMF and the only one that addresses specifics of 2.0.

The book is divided into 23 chapters and three appendices. Chapter 1 provides a nice historical perspective on JMF and the problems it tries to address. Chapter 2 takes a refreshing approach to shortcomings by talking about the growing pains that come with new technology, after which we dig into the API. Chapter 3 covers keeping time and Chapter 4 covers controls, laying a good foundation for subsequent chapters. Chapter 5 looks at the MediaHandler. Chapter 6 implements an applet that demonstrates numerous techniques covered to that point in the book. Chapter 7 asserts more control over the API.

Chapter 8 extends the Swing JFileChooser with a media preview window. Unfortunately, JMF requires heavyweight components, so the result is disappointing, causing inappropriate overlaps and conflicts with the pulldown menu. Chapter 9 moves code into a JavaBeans component. Many of the subsequent chapters are dedicated to developing media content and associated players, sometimes digging deep under the hood to clarify the flexibility of the API. Chapters 11 and 17 are especially interesting in their focus on synchronizing multiple players. Chapter 21 concludes with a look at the future of JMF.

I found both JMF books in print falling short on how to use the JMF in practical ways. Both cover developing JMF media players and handlers of various kinds. Core JMF has good examples and tends to be pragmatic about any shortcomings or workarounds, with coverage of JMF 2.0 unique to its pages. If you need to present the user with systems that allow mixing music, support an Internet client/server architecture, or other more user-centric tasks, there is little coverage in this or any JMF book in print, which is disappointing in my view. Still, there is a lot of valuable information in these pages and if you’re serious about media delivery in Java, this is a good investment.