This document introduces the Multimedia Framework (MMF) audio and video client interfaces.
Multimedia Framework (MMF) provides several client interfaces that encapsulate a lightweight plugin framework. These interfaces enable you to manipulate the audio and video features of the Symbian platform.
The following diagram shows how the MMF client interfaces interact with the Multimedia Controller Framework and the Media Device Framework (MDF).
Figure: Multimedia Framework - client utilities
MMF Controller Framework
The MMF Controller Framework provides support for multimedia plugins within the Symbian platform. The main type of plugin for the MMF Controller Framework is the controller plugin. Each controller plugin provides support for one or more multimedia formats, for example, MP3 or AVI.
Note: In addition to controller plugins, the Multimedia framework can also be extended through format encoder/decoder, codec, and sink/source plugins. For more information about plugins, see How to write Multimedia Framework plugins.
The player and recorder interfaces of both audio and video and also the audio converter interface use the controller plugins provided by the MMF Controller Framework. These plugins provide the functionality to convert, interpret, and play audio and video data. The resultant data from the plugins can then be directed to one or more sinks such as a file, or directly to a screen or lower level device driver.
Note: Tone player and audio streaming are also provided as part of the MMF but do not interact with controller plugins. Input and output is already in a known data format and so does not require a plugin for encoding or decoding. As a result, they bypass the MMF Controller Framework.
Media Device Framework
Media Device Framework is the layer below the controller plugins and above the hardware. It provides a layer of abstraction for the audio and video hardware. The MDF consists of DevSound, for audio input and output, and DevVideo for video.
DRM Support
The Symbian platform provides support for playback of Digital Rights Management (DRM) protected audio and video content by making use of the Content Access Framework (CAF). For more information about the CAF, see Content Access Framework.
Note: In order to access any DRM protected content using Symbian multimedia, the client process must have the DRM capability.
The features made available by the MMF client interfaces are:
Audio playing,
recording, and conversion - An interface consisting of three classes; CMdaAudioPlayerUtility
, CMdaAudioRecorderUtility
, and CMdaAudioConvertUtility
. These classes provide
methods to create, play, and manipulate audio data stored in files,
descriptors, and URLs.
Audio streaming
- An interface consisting of two classes; CMdaAudioInputStream
and CMdaAudioOutputStream
. These classes provide
methods for recording and playing audio streams such as audio from
a web address.
Note: There are no explicit interfaces for video streaming. However, the Onboard Camera can be used to achieve video input streaming, and direct screen access can be used to achieve video output streaming. For more information about the Onboard Camera, see Onboard Camera Overview.
Tone playing
- An interface consisting of a single class CMdaAudioToneUtility
. This class provides methods for playing and configuring single
and sequenced tones as well as DTMF (Dual Tone Multi-Frequency) strings.
Video playing and recording - An interface consisting of two classes CVideoPlayerUtility and CVideoRecorderUtility. These classes provide methods to create, play, and manipulate video clips with or without audio tracks stored in files, descriptors, and URLs.
Observer Classes
For each multimedia client interface,
there is a corresponding mixin class that must be implemented by the
client. For example, to use the audio player utility you must implement
the observer mixin class MMdaAudioPlayerCallback
.
When instantiating any of the MMF interfaces, it is necessary to provide a reference to a class that implements the appropriate mixin class. This allows the MMF to notify the client of events that occur and also to notify the client of errors that may occur.
The following tutorials are provided: