| CONTENTS | PREV | NEXT | INDEX | JMF 2.0 API Guide |
NOTE: The latest JMF 2.1 release does not change the JMF 2.0 API; it only updates Sun's implementation of the API. The 2.0 items discussed in this guide will work with JMF 2.1.
Preface
- About JMF
- Design Goals for the JMF API
- About the JMF RTP APIs
- Partners in the Development of the JMF API
- Contact Information
- About this Document
- Guide to Contents
- Change History
- Comments
Part 1: JavaTM Media Framework
Working with Time-Based Media
- Streaming Media
- Content Type
- Media Streams
- Common Media Formats
- Media Presentation
- Presentation Controls
- Latency
- Presentation Quality
- Media Processing
- Demultiplexers and Multiplexers
- Codecs
- Effect Filters
- Renderers
- Media Capture
- Capture Devices
- Capture Controls
Understanding JMF
- High-Level Architecture
- Time Model
- Managers
- Event Model
- Data Model
- Controls
- User Interface Components
- Extensibility
- Presentation
- Players
- Processors
- Presentation Controls
- Controller Events
- Processing
- Processing Controls
- Data Output
- Capture
- Media Data Storage and Transmission
- Storage Controls
- Extensibility
- Implementing Plug-Ins
- Implementing MediaHandlers and DataSources
Presenting Time-Based Media with JMF
- Controlling a Player
- Creating a Player
- Displaying Media Interface Components
- Setting the Playback Rate
- Setting the Start Position
- Preparing to Start
- Starting and Stopping the Presentation
- Releasing Player Resources
- Querying a Player
- Getting the Playback Rate
- Getting the Media Time
- Getting the Time-Base Time
- Getting the Duration of the Media Stream
- Responding to Media Events
- Implementing the ControllerListener Interface
- Using ControllerAdapter
- Synchronizing Multiple Media Streams
- Using a Player to Synchronize Controllers
- Synchronizing Players Directly
- Example: Playing an MPEG Movie in an Applet
- Overview of PlayerApplet
- Initializing the Applet
- Controlling the Player
- Responding to Media Events
- Presenting Media with the MediaPlayer Bean
- Presenting RTP Media Streams
- Listening for RTP Format Changes
Processing Time-Based Media with JMF
- Selecting Track Processing Options
- Converting Media Data from One Format to Another
- Specifying the Output Data Format
- Specifying the Media Destination
- Selecting a Renderer
- Writing Media Data to a File
- Connecting a Processor to another Player
- Using JMF Plug-Ins as Stand-alone Processing Modules
Capturing Time-Based Media with JMF
- Accessing Capture Devices
- Capturing Media Data
- Allowing the User to Control the Capture Process
- Storing Captured Media Data
- Example: Capturing and Playing Live Audio Data
- Example: Writing Captured Audio Data to a File
- Example: Encoding Captured Audio Data
- Example: Capturing and Saving Audio and Video Data
Extending JMF
- Implementing JMF Plug-Ins
- Implementing a Demultiplexer Plug-In
- Implementing a Codec or Effect Plug-In
- Implementing a Multiplexer Plug-In
- Implementing a Renderer Plug-In
- Registering a Custom Plug-In
- Implementing Custom Data Sources and Media Handlers
- Implementing a Protocol Data Source
- Integrating a Custom Data Source with JMF
- Implementing a Basic Controller
- Implementing a DataSink
- Integrating a Custom Media Handler with JMF
- Registering a Capture Device with JMF
Part 2: Real-Time Transport Protocol
Working with Real-Time Media Streams
- Streaming Media
- Protocols for Streaming Media
- Real-Time Transport Protocol
- RTP Services
- RTP Architecture
- RTP Applications
- Receiving Media Streams From the Network
- Transmitting Media Streams Across the Network
- References
Understanding the JMF RTP API
- RTP Architecture
- Session Manager
- RTP Events
- RTP Data
- RTP Controls
- Reception
- Transmission
- Extensibility
- Implementing Custom Packetizers and Depacketizers
Receiving and Presenting RTP Media Streams
- Creating a Player for an RTP Session
- Listening for Format Changes
- Creating an RTP Player for Each New Receive Stream
- Handling RTP Payload Changes
- Controlling Buffering of Incoming RTP Streams
- Presenting RTP Streams with RTPSocket
Transmitting RTP Media Streams
- Configuring the Processor
- Retrieving the Processor Output
- Controlling the Packet Delay
- Transmitting RTP Data With a Data Sink
- Transmitting RTP Data with the Session Manager
- Creating a Send Stream
- Controlling a Send Stream
- Sending Captured Audio Out in a Single Session
- Sending Captured Audio Out in Multiple Sessions
- Transmitting RTP Streams with RTPSocket
Importing and Exporting RTP Media Streams
- Reading RTP Media Streams from a File
- Exporting RTP Media Streams
Creating Custom Packetizers and Depacketizers
- RTP Data Handling
- Dynamic RTP Payloads
- Registering Custom Packetizers and Depacketizers
JMF Applet
StateHelper
Demultiplexer Plug-In
Sample Data Source Implementation
- Source Stream
Sample Controller Implementation
- TimeLineController
- TimeLineEvent
- EventPostingBase
- ListenerList
- EventPoster
RTPUtil
Glossary
Index