What’s alsa
ALSA是Advanced Linux Sound Architecture的缩写,高级Linux声音架构的简称,它在Linux操作系统上提供了音频和MIDI(Musical Instrument Digital Interface,音乐设备数字化接口)的支持。
alsa 代码分析
snd_pcm_open
snd_pcm_start
snd_pcm_writei
snd_pcm_readi
snd_pcm_pause
snd_pcm_close
如何选定snd_pcm_fast_ops_t

从_snd_pcm_writei函数对应的ops上来看,open时会指定fast_ops来代表不同的声卡,那么如何选定这个声卡以及驱动呢?
Samples:
pcm.plughw {
@args [ CARD DEV SUBDEV ]
@args.CARD {
type string
default {
@func getenv
vars [
ALSA_PCM_CARD
ALSA_CARD
]
default {
@func refer
name defaults.pcm.card
}
}
}
@args.DEV {
type integer
default {
@func igetenv
vars [
ALSA_PCM_DEVICE
]
default {
@func refer
name defaults.pcm.device
}
}
}
@args.SUBDEV {
ALSA高级音频架构:操作指南与驱动交互

本文解析了ALSA在Linux中的作用,重点讲解了如何通过`snd_pcm_open`等函数选定声卡驱动,以及`snd_pcm_fast_ops_t`的选择过程。涉及`snd_pcm_writei`和硬件驱动层面的细节,还介绍了与驱动通信的机制,包括mmap方式的数据写入。
最低0.47元/天 解锁文章
3660

被折叠的 条评论
为什么被折叠?



