android-alsa架构

linux的alsa驱动层

在kernel/sound/core/pcm_native.c文件中的snd_pcm_f_ops是alsa驱动层对alsa_lib层的接口;

从Android的角度由下往上看:首先是cpp库层,然后是框架层,最后是java应用层。

库层分3部分:首先是硬件接口层AudioHardwareInterface,其派生类负责调用alsa_lib接口,形成read、write等虚函数;

其次是音频环层AudioFlinger,利用多态的性质调用硬件接口层AudioHardwareInterface派生类的read、write等虚函数并最终管理read和write两个线程。

最后,是媒体录音MediaRecorder和媒体播放层MediaPlayer。进入或激活read/write线程,实现录音放音功能。

你可能感兴趣的:(android-alsa架构)