Android底层开发之音频输入通道的软硬件分析
我们都知道耳机Mic集成在一直的那种四段耳机Mic插头是Android设备上比较常用。但是也会有分开的情况,比较如果在普通的PC机中装Android系统,那么就是这种情况。所以就有必要对音频输入通道的软件硬件进行统一的分析一下,接下来分析一个实例。
该设备的硬件连接为:基于3157的模拟开关实现的 通道切换。
设备是完全靠硬件实现的,那么就没有软件的什么工作了。但是这并不是一个理想的实现方法,真下的实现方法应该是所有的Mic都是并行的,每个Mic通道都有一个使能管脚。让系统来控制让哪个Mic作为输入。其实rk616 audio代码中是有切换的代码的:
static int rk616_capture_path_put(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct rk616_codec_priv *rk616 = rk616_priv;
long int pre_path;
if (!rk616) {
printk("%s : rk616_priv is NULL\n", __func__);
<