The playing of sounds is handled by the Media Server and this, in turn, is responsible for managing the interface to audio hardware on an EPOC device. On some EPOC devices, this may be implemented as a device driver; on others it may be implemented as a connection to a lower level hardware server.
Clients using this API must have an active scheduler running in their thread because the implementation of the API uses active objects and callbacks.
Audio sample data is in one of the standard formats (e.g. WAV and AU) and this can be located in a file or in memory as a descriptor.
Each sample to be played needs its own instance of the classes
provided by the API, i.e. CMdaAudioPlayerUtility
and
MMdaAudioPlayerCallback
. The API also provides for
multiple calls per audio sample, for example, Open(), Play(volume1),
Play(volume2).
Requests to playback sounds are asynchronous and completion of these requests is indicated through a callback function which is implemented by the client.