- 博客(8)
- 收藏
- 关注
原创 Android/Linux音频架构开发ALSA-篇6
这里我们主要看下snd_ctl_elem_read_user和snd_ctl_elem_write_user,应用层控制就通过调用ioctl传入SNDRV_CTL_IOCTL_ELEM_READ和SNDRV_CTL_IOCTL_ELEM_WRITE即可。上面snd_ctl_elem_write和snd_ctl_elem_read方法最终调用了kctl的put和get方法,这两个方法其实一般也是我们给的,我们来看下是如何给到的。获取snd_card,然后调用snd_register_device。
2024-08-09 16:51:19
845
原创 Android/Linux音频架构开发ALSA-篇2
我们先来一张图来宏观的看一下ASLA的主要部分如图所示,我们可以看到整个系统是分为四个部分,运行app的用户层、linux中间层、Android hal层、kernel层、硬件层。我们的ASLA主要存在中间层和kernel层,中间层有一个alsa-lib的库,会提供api接口给app调用,app调用这个接口就可以传输音频数据或者控制信号给到kernel层的alsa driver,最终将数据写入到硬件层进行发声。这里还有个alsa soc,他是针对alsa driver的又一层封装,后面我们也会讲到。
2024-08-06 14:30:35
649
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人