在 Android 平台上,音频混合器 AudioMixer 主要用在 AudioFlinger 里,将多路音频源数据混音(包括音频叠加、音量控制、音频效果添加及处理声道等),以方便送进音频设备播放出来。位于 framework 的音频处理模库 libaudioprocessing(frameworks/av/media/libaudioprocessing)中。
一、音频混合器
混音器(AudioMixer)是在混音回放线程类(MixerThread)中的构造函数内创建。
1、混合器创建
源码位置:/frameworks/av/services/audioflinger/Threads.cpp
AudioFlinger::MixerThread::MixerThread(……)
{
……
mAudioMixer = new AudioMixer(mNormalFrameCount, mSampleRate);
……
}
这说明了一个 MixerThread 对应一个 AudioMixer,而且 MixerThread 传了两个参数给AudioMixer:
- mNormalFrameCount