一、声音相关的几个概念
PCM: 脉冲编码调制,一种数字信号的编码方式,用于保存音频数据
MIDI: 乐器数字接口,一种乐器间通信的标准格式,用于描述声音流的产生过程,近乎“乐谱”
mixer: 混音器,管理声音通道(单声道、立体声、多通道)的合成
sequencer: 声音序列发生器(类比信号发生器),用于声音采集
playback: 播放模式
capture: 录音模式
AD/DA: 模数/数模转换器,模拟信号与数字信号转换的必要器件
DSP: 数字信号处理器,一般都会有固件支持,用于滤波处理(类比美颜功能)
二、声卡
1、声卡描述模型 ===(struct snd_card)
该数据结构中的void *private_data; /* private data for soundcard */用于绑定声卡
2、声卡管理接口
创建:snd_card_new
注册:snd_card_register
释放:snd_card_free
三、声音设备
1、声音设备 === (struct snd_device)
2、声音设备分类 === (enum snd_device_type)
3、声音设备管理接口
创建:snd_device_new
注册:snd_device_register
断开连接:snd_device_disconnect
释放:snd_device_free
四、PCM设备驱动
1、创建:snd_pcm_new
2、操作接口:struct snd_pcm_ops
3、绑定操作借口:snd_pcm_set_ops
4、运行时:struct snd_pcm_runtime
五、实例:linux-src-dir/sound/drivers/dummy.c
六、alsalib