Core JMF CD Contents
All of the source code described throughout Core JMF is available in the source directory of the CD that accompanies this book. The source directory is composed of sub-directories, each of which contains the source files described in a particular chapter.
New: The latest version of the source code is online. However, the Real Player and the QuickTime version
of JMF cannot be placed online due to contractual restrictions.
The overview below will guide you through the contents of the source directory.
Chapter 1: Multimedia Evolution
Backdoor applet sample illustrates how to use Sun's undocumented sun.audio class.
Chapter 6: AlohaJMF: A JMF Applet
This directory contains two projects (or directories)
AlohaJMF
Simple hello-world type applet.
- AlohaJMF.java (applet source)
- Page1.htm
AlohaJR
AlohaJMF spiced up with additional features.
- AlohaJR.java (applet source)
- Page1.htm
Chapter 8: Multimedia Swing Set
AudioPreview sample:
Shows you how to integrate JMF with Swing.
- JMFFileChooser.java (illustrates how to create custom JMF FileChooser)
- MultimediaFileView.java (displays audio icons)
- MultimediaFilter.java (filters out non-multimedia files)
- MultimediaPreview.java (previews audio content).
Chapter 9: The Next Generation: Java Beans and JMF
Jumping Bean
Illustrates how to create a JMF-based bean.
- JumpingBean.java (sample JMF bean)
- JumpingBeanBeanInfo.java (multimedia bean properties)
- MultimediaFileView.java (displays multimedia icons specified by the bean)
- MultimediaFilter.java (filters out non-multimedia files)
- MultimediaPreview.java (previews audio content).
Chapter 10: Going Native
BeanBridge
Code necessary to exploit JMF with C++.
- BeanBridge.cpp (sample C++ source to launch JVM and use JMFFileChooser)
Chapter 13: The Multimedia Caption DataSource
MCML DataSource
Sample datasource that parses a custom file format (i.e. Multimedia Caption Language or MCML).
MCML is useful for closed captioning or for synchronizing text with audio or video.
- TextSourceStream.java (PullSourceStream sample that outputs timing info).
- TimeTextSourceStream.java (PullSourceStream sample that outputs timing info).
- DataSource.java (MCML DataSource)
- mcml.java (mcml parser)
- *.mcml (sample caption files)
Chapter 15: The CaptionMediaHandler
This sample creates a MediaHandler (Player) that can play MCML content.
- AlohaJMF.java
- CaptionControlPanelComponent.java (GUI controls for Player)
- CaptionPrefetch.java (prefetch thread)
- CaptionRealize.java (realize thread)
- CaptionStart.java (start thread)
- CaptionStop.java(stop thread)
- CaptionVisualComponent.java (output class for Player)
- Handler.java (core Player methods)
- SendThread.java (event thread class)
Chapter 16: Grapling with the CD
This sample lets you play CD Audio in eiter Win32 or OS/2. UNIX/Linux readers will need to port
it to their respective platforms. If you do port it, please contact me!
- AlohaJMF.java (sample class to control the CD Player)
- CDAudio.java (JNI interface class to CD device)
- CDMediaHandler.java (core Player methods)
- CDPrefetch.java(prefetch thread)
- CDRealize.java (realize thread)
- CDStart.java (start thread)
- CDStop.java (stop thread)
- MCIHack.java (java thread to work around Win32 MCI bugs)
- PositionAdviseEvent.java
- SendThread.java (event thread class)
- CDControlPanelComponent.java (GUI controls for Player)
- cdcontrol.cpp (JNI routines to control the CD)
- *.mak (makefiles for specific platforms)
- *.mcml (sample caption files)
Chapter 17: The Ultimate Synchronization: the Marriage of Players
Sample which synchronizes CDAudio with text (aka MCML content).
- SyncTest.java (synchronizes CD and caption Players)
- *.mcml (sample caption files useful in synchronization)
Chapter 18: Meddling in a Player's Business With a MediaProxy
Sample MediaProxy that receives a single input stream and shows you how to
split the output into multiple streams.
- AlohaJMF.java (sample class to control MediaProxy)
- CombinedSourceStream.java (PullSourceStream sample that outputs both text and timing info).
- DataSource.java (single output stream MCML DataSource)
- mcml.java (mcml parser)
- mcml2.java (mcml parser-single output stream)
- MCMLTextDataSource.java (converts single stream MCML input into two stream output needed by Player).
- playersrc/CaptionControlPanelComponent.java (GUI controls for Player)
- playersrc/CaptionPrefetch.java(prefetch thread)
- playersrc/CaptionRealize.java (realize thread)
- playersrc/CaptionStart.java (start thread)
- playersrc/CaptionStop.java(stop thread)
- playersrc/CaptionVisualComponent.java (output class for Player)
- playersrc/Handler.java (core Player methods)
- SendThread.java (event thread class)
- TextSourceStream.java (PullSourceStream sample that outputs text info on byte input stream).
- TimeTextSourceStream.java (PullSourceStream sample that outputs timing info on byte input stream).
- *.mcml (sample caption files)
Chapter 19: Real-time Streaming
This sample illustrates RTSP programming and exploits RealNetwork's JMF enhancements.
- MultimediaFileView.java (RealMedia/audio icon viewer)
- MultimediaFilter.java (filters out non-multimedia files)
- MultimediaPreview.java (previews RealMedia content)
- RealFileChooser.java (illustrates how to use the RealNetwork's JMF API).
Chapter 20: A Real-Time Hybrid
This sample illustrates how to use Sun's RTPSessionManager class and associated interfaces.
- RTPDumper.java (illustrates how to use the RTPSessionManager).
- RTPStats.java (rtp statistics class)
Besides source code, the CD also contains Real Networks G2 JMF Player. If you are running Windows 95 or 98, or Windows NT, you can install this player from the real\g2player directory. If you are a Quicktime user, you can install Whipped butter, a JMF runtime, from the quicktim directory. This diretory contains the Mac runtime (WB1.1(Mac).hqx), the Win32 runtime (WB1.1(Win).zip) and associated documenta-tion(WBDocs.zip)
Copyright © Linden deCarmo 1999-2000. All rights reserved.
Questions or Comments on this page?
Contact Linden deCarmo
Last Modified: February 24, 2000