Architecture

Figure 75: MMAPI architecture

Manager is a class with only static methods; applications cannot create an instance of it. Manager provides static methods for creating players and querying supported protocols and content types. It also provides a convenient method, playTone, for playing a single tone.

Manager's createPlayer methods create a Player with an associated DataSource to supply it with data. This DataSource can be built from an InputStream or from a URI-style locator. The DataSource instance is not visible to the application programmer. The S60 and Series 40 MMAPI implementation supports, for example, the following locator forms:

This document will discuss more about locators in the forthcoming chapters. Audio and video recording is discussed in section Recording Sound and Video.

Manager creates the correct kind of Player implementation class by checking the DataSource's content type (for example, from an HTTP response's Content-Type header) or file extension. If it cannot determine the DataSource's content type, it will throw a MediaException

Once the player has been created, it can provide you various kinds of Control, for instance:

There are many other types of Control, but not all will be supported by a given device's Mobile Media API implementation, or for a given content type. You can find out what controls are supported in a device by checking the system properties (for example, System.getProperty("supports.video.capture")). A full list of these properties is provided in the Mobile Media API specification.