alsa的音频架构

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

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 {
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值