This article presents the latest developments in MMAPI: the new security considerations raised in MMAPI 1.1, the differences between MMAPI and the MIDP 2.0 Media API, J2ME Wireless Toolkit 2.2 support for MMAPI, and JSR 234, Advanced Multimedia Supplement
Tutorial Details:
The Mobile Media API (MMAPI) is an optional package within the Java 2 Platform, Micro Edition (J2ME), that provides a standard API for rendering and capturing time-based media, such as audio tracks and video clips. Developed within the Java Community process as JSR 135, MMAPI was designed to be flexible and platform-independent; it makes no assumptions about media formats, protocols, or features supported by various devices. MMAPI is already making its way into mobile devices; the Nokia 3650, for example, includes an implementation. Other devices that support MMAPI can be found at "J2ME Devices."
This article services the latest developments in MMAPI: the new security considerations raised in MMAPI 1.1, the differences between MMAPI and the MIDP 2.0 Media API, J2ME Wireless Toolkit 2.2 support for MMAPI, and JSR 234, Advanced Multimedia Supplements. If you're looking for a tutorial on MMAPI as well as code samples, for an audio/video player, for instance, see the articles "The J2ME Mobile Media API" and "Taking Pictures With MMAPI."
Overview of MMAPI Components
MMAPI has four main components:
Player is used to play content. It provides methods to manage a Player's life-cycle, and to manage various playback features.
Manager is the overall controller of the media. It creates Players.
DataSource represents a protocol handler, usually not visible to the application developer. The protocol handler reads the media data and fetches it to Player for playback.
Control controls various features of Player and playback operations.
Supported MMAPI Controls
MMAPI has 12 controls, in the package javax.microedition.control:
MetaDataControl retrieves metadata information from the media.
MIDIControl provides access to MIDI rendering and transmitting devices.
GUIControl represents a control that provides a UI component.
PitchControl raises or lowers the playback pitch without changing the playback speed.
RateControl controls the playback rate.
TempoControl controls the tempo of a MIDI song.
VolumeControl controls the volume.
VideoControl controls the display of visual content.
FramePositioningControl enables precise positioning to a video frame.
RecordControl records what is currently being played by the Player.
StopTimeControl enables an application to define a preset stop time for a Player.
ToneControl is an interface that enables playback of user-defined tone sequences.
Be aware that not all MMAPI implementations support all types of controls. You can find out what a device does support by calling System.getProperty(String key). The specification defines these properties:
microedition.media.version returns a string representing the version of MMAPI implemented, "1.0" or "1.1" if MMAPI is supported, or null if it isn't.
supports.mixing returns true if mixing is supported, false if it isn't.
supports.audio.capture returns true if audio capture is supported, false if it isn't.
supports.video.capture returns true if video capture is supported, false if it isn't.
supports.recording returns true if recording is supported, false if it isn't.
audio.encodings returns a string representing the supported audio capture formats, or null if audio capture isn't supported.
video.encodings returns a string representing the supported video capture formats, or null if video capture isn't supported.
video.snapshot.encodings returns a string representing the supported image capture formats, or null if video snapshot isn't supported.
streamable.contents returns a string representing the supported streamable content types, in MIME syntax.
Read
Tutorial at: Click here to view the tutorial
Rate Tutorial: Comparing J2ME Multimedia Options
View Tutorial: Comparing J2ME Multimedia Options
Related
Tutorials:
Program Java devices -- An
overview - JavaWorld July 1999
Program Java devices -- An
overview - JavaWorld July 1999 |
Rumble in the
jungle: J2EE versus .Net, Part
1
Rumble in the
jungle: J2EE versus .Net, Part
1 |
J2ME devices:
Real-world performance
J2ME devices:
Real-world performance |
Big designs for
small devices
Big designs for
small devices |
Picture
this
Picture
this |
Let the mobile
games begin, Part 2
Let the mobile
games begin, Part 2 |
Develop state-of-the-art mobile
games
Develop state-of-the-art mobile
games |
J2ME app development on the 6600
J2ME app development on the 6600
Introduction
When you first look at the Nokia 6600, the first reaction is very predictable. wow! It is truely a good looking phone. A stunner. Let's find out if there's more to this phone than just good looks. |
A Collection of JVM Options
This document is a compilation of all the JVM options for various versions of the JVM on primarily SPARC/Solaris Platform. The descriptions for each option are taken mostly verbatim from the reference documents. |
Light-Weight Visual Components Library for different platform: SWT, J2SE, J2ME, .NET
Light-Weight Visual Components Library for different platform: SWT, J2SE, J2ME, .NET |
J2ME Technology Turns 5!
In 2004 the Java 2 Platform, Micro Edition (J2ME) celebrated its fifth anniversary. This article presents where J2ME is today. |
J2ME Wireless Toolkit 2.2
Now available.This version of the toolkit is fully compatible with the Java Technology for the Wireless Industry (JTWI) specification (JSR 185). |
Develop MIDlets using the J2ME MIDP Development for NetBeans IDE 4.0
This release integrates with the J2ME Wireless Toolkit 2.2 to create a powerful environment for developing MIDP 2.0 applications. |
Getting Started with SIP API for J2ME (JSR 180)
Getting Started with SIP API for J2ME (JSR 180) This article presents an overview of SIP, the Session Initiation Protocol (SIP) a signaling protocol used for establishing and controlling sessions on telecommunication networks based on the Internet Protoco |
What package names are defined in the J2ME environment?
A compendium of J2ME package names, neatly arranged by JSR and presented for your illumination. |
What are the defined J2ME system property names?
A compilation of J2ME properties sorted by JSR. Learn the names, test for optional packages or retrieve platform specific configuration values. |
Updates to the Survey of J2ME Today
Give a consolidated big picture survey of J2ME terminology and technical origins. |
Pure Java SSH Tool for J2ME
JSch is the pure Java SSH2 implementation developed by JCraft under revised BSD license. It has been already widely adopted by several open source projects, including Eclipse, Apache Ant, etc., |
Comparing J2ME Multimedia Options
This article presents the latest developments in MMAPI: the new security considerations raised in MMAPI 1.1, the differences between MMAPI and the MIDP 2.0 Media API, J2ME Wireless Toolkit 2.2 support for MMAPI, and JSR 234, Advanced Multimedia Supplement |
Getting Started With the PIM APIs
This article provides a code-intensive introductory tutorial to Personal information management (PIM) APIs, JSR 75. |
|
|
|