Archived:Audio routing settings cannot be controlled on S60 1st and 2nd Editions (Known Issue)
Audio routing settings (source for recording or target for playback) cannot be controlled through the CMdaAudioRecorderUtility interface.
The function call SetAudioDeviceMode() of the class CMdaAudioRecorderUtility does not affect the audio routing settings, but the default settings are always used.
When recording: if a telephony call is in progress, an attempt is made to connect to the telephony downlink plus the device microphone. If there is no telephony call in progress or a connection to the telephony downlink fails, an attempt is made to connect to the device microphone only. It is not possible to control the microphone, i.e., to set the microphone mute on/off.
When playing: if a telephony call is in progress, an attempt is made to connect to the telephony uplink. If there is no telephony call in progress or a connection to the telephony uplink fails, an attempt is made to connect to the device speaker.
- Playing audio to telephony uplink is not possible on some devices; see the following known issue for more information
- S60 2nd Edition, Feature Pack 2 and FP3 devices do not automatically route audio to/from an active voice call, unless a custom audio preference is used (see solution).
For S60 2nd Edition, FP2 and FP3 devices, a custom audio preference is needed to play /record audio to/from an active voice call. The preference value (TMdaPriorityPreference) is passed to the constructor of an audio utility. For example, when using CMdaAudioPlayerUtility:
#define KAudioPriority 80
#define KAudioPreference 0x00060001
iPlayer = CMdaAudioPlayerUtility::NewFilePlayerL(
Note that because of the Platform Security, there is no support for a custom audio preference for third-party developers from S60 3rd Edition onwards.