While some of the requirements outlined in this section are listed as SHOULD since Android 4.3, the Compatibility Definition for future versions are planned to change these to MUST. Existing and new Android devices are STRONGLY RECOMMENDED to meet these requirements that are listed as SHOULD, or they will not be able to attain Android compatibility when upgraded to the future version.
If device implementations declare android.hardware.microphone
, they:
[C-1-1] MUST allow capture of raw audio content with the following characteristics:
SHOULD allow capture of raw audio content with the following characteristics:
[C-1-2] MUST capture at above sample rates without up-sampling.
[C-1-3] MUST include an appropriate anti-aliasing filter when the sample rates given above are captured with down-sampling.
SHOULD allow AM radio and DVD quality capture of raw audio content, which means the following characteristics:
[C-1-4] MUST honor the MicrophoneInfo
API and properly fill in information for the available microphones on device accessible to the third-party applications via the AudioManager.getMicrophones()
API, and the currently active microphones which are accessible to the third party applications via the AudioRecord.getActiveMicrophones()
and MediaRecorder.getActiveMicrophones()
APIs. If device implementations allow AM radio and DVD quality capture of raw audio content, they:
[C-2-1] MUST capture without up-sampling at any ratio higher than 16000:22050 or 44100:48000.
[C-2-2] MUST include an appropriate anti-aliasing filter for any up-sampling or down-sampling.
If device implementations declare android.hardware.microphone
, they:
android.media.MediaRecorder.AudioSource.VOICE_RECOGNITION
audio source at one of the sampling rates, 44100 and 48000.AudioSource.VOICE_RECOGNITION
audio source.AudioSource.VOICE_RECOGNITION
audio source.If device implementations declare android.hardware.microphone
and noise suppression (reduction) technologies tuned for speech recognition, they:
android.media.audiofx.NoiseSuppressor
API.AudioEffect.Descriptor.uuid
field.The android.media.MediaRecorder.AudioSource
class includes the REMOTE_SUBMIX
audio source.
If device implementations declare both android.hardware.audio.output
and android.hardware.microphone
, they:
[C-1-1] MUST properly implement the REMOTE_SUBMIX
audio source so that when an application uses the android.media.AudioRecord
API to record from this audio source, it captures a mix of all audio streams except for the following:
AudioManager.STREAM_RING
AudioManager.STREAM_ALARM
AudioManager.STREAM_NOTIFICATION
If device implementations declare android.hardware.microphone
, they:
AudioSource.VOICE_COMMUNICATION
If device implementations provides an Acoustic Echo Canceler which is inserted in the capture audio path when AudioSource.VOICE_COMMUNICATION
is selected, they:
If device implementations declare android.hardware.microphone
,they MUST implement concurrent capture as described in this document. Specifically:
AudioSource.VOICE_RECOGNITION
and at least one application capturing with any AudioSource
.AudioSource
except for AudioSource.VOICE_COMMUNICATION
or AudioSource.CAMCORDER
.AudioSource.VOICE_COMMUNICATION
or AudioSource.CAMCORDER
. However, when an app is capturing via AudioSource.VOICE_COMMUNICATION
then another app can capture the voice call if it is a privileged (pre-installed) app with permission CAPTURE_AUDIO_OUTPUT
.If device implementations declare android.hardware.microphone
, they: