Audio Client Overview

This document provides an overview of the Audio Client.

Purpose

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.

DLL LIB Short Description

mediaclientaudio.dll

mediaclientaudio.lib

These files are used for implementing the Audio Client.

Architectural Relationship

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

Description

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.

Tone Playing

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:

  • Single tones of a specified duration and frequency.

  • DTMF strings.

  • Sequences of tones held in files or descriptors.

  • Predefined (fixed) sequences of tones held in the mobile equipment.

Key Audio Client Classes

The functionality provided by the Audio Client is contained within the following classes:

Using the Audio Client

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.