This document provides an overview of the Audio Client.
The Audio Client provides an interface to:
Play back, record, and convert sound clips.
Play tone sequences and DTMF (Dual-Tone Multi-Frequency) strings.
Audio Client Library Details
The DLL that provides the functionality and the library to which your code must link is identified below.
The methods for recording, converting, and playing audio clips or tones interact with the lower levels of MMF (known as the controller framework). The controller framework is in turn responsible for managing the interface to audio hardware. On some phones, this is implemented as a device driver; on others it may be implemented as a connection to a lower level hardware controller.
Clients using any of the CMdaAudioRecorderUtility
, CMdaAudioConvertUtility
, CMdaAudioPlayerUtility
or CMdaAudioToneUtility
classes must have an
active scheduler running in their thread because the implementations
use active objects and callbacks.
How the tone player class interacts with other components of MMF is shown below.
Figure: Audio tone player overview
Audio Playing, Recording, and Conversion
All three of the audio classes are plugin based, leaving the list of supported audio formats for input and output open ended. The audio file formats supported as standard by MMF are: AU, WAV and raw audio data. Each file format may support one or more compression algorithms (codecs). The standard file formats and corresponding codecs are shown below:
Audio file format | Codecs supported |
---|---|
AU |
A-Law, mu-law, signed 16 bit PCM big-endian, signed 8 bit PCM |
WAV |
IMA-ADPCM, A-Law, mu-law, unsigned 8 bit PCM, gsm 6.10, signed 16 bit PCM |
raw data |
Signed big-endian 16 bit PCM, signed 16 bit PCM, unsigned 16 bit PCM |
Input and output audio data can be of any format supported
by the installed plugins. When possible MMF uses a plugin resolver
to determine the format and codecs to use. It determines this by checking
the filename extension and reading any header data that may be present
in the audio clip. The plugin resolver cannot determine the format
and codecs to use for raw audio, so in such cases you must specify
this information yourself. A full list of supported plugins can be
retrieved by using CMdaAudioConvertUtility::GetSupportedDestinationDataTypesL()
.
Note: All audio clips can be uniquely identified
for purposes of plugin assignment by their format (gsm z6.10, AU,
WAV and so on) and their codec (for example for AU, valid codecs include
A-Law, mu-law, signed 16 bit PCM big-endian, signed 8 bit PCM). Each
format and codec has an arbitrary ID assigned to it by MMF and its
associated plugin, for use with the "Open" functions of both CMdaAudioConvertUtility
and CMdaAudioRecorderUtility
.
The Audio Client provide a simple interface for tone generation
(synthesized sounds) that enables the playing of tone sequences and
DTMF (Dual-Tone Multi-Frequency) strings. The tone player functionality
is provided by the CMdaAudioToneUtility
class and
using this class you can play:
The functionality provided by the Audio Client is contained within the following classes:
Clients can use the Audio Client to:
Manipulate audio sources and sinks, add, retrieve and modify meta data and record audio data to files or descriptors.
Convert audio clips contained in files or descriptors to other formats using the default codecs provided by MMF.
Play audio clips contained in files, descriptors or URLs.
Play single tones, DTMF strings and tone sequences.