//2012年11月25日, PM 10:46:01 by mfj
#include <alsa/asoundlib.h>
snd_pcm_uframes_t // 桢类型
snd_pcm_t // 音频句柄
snd_pcm_hw_params_t // 硬件参数
流程:
1、打开alsa设备
snd_pcm_open(snd_pcm_t *handle, "default", SND_PCM_STREAM_PLAYBACK 0)
2、分配snd_pcm_hw_params_t结构体
snd_pcm_hw_params_malloc(snd_pcm_hw_params_t * hw_params)
3、初始化hw_params
snd_pcm_hw_params_any(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params)
4、初始化访问权限
snd_pcm_hw_params_set_access(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params,
SND_PCM_ACCESS_RW_INTERLEAVED)
5、设置采集格式(量化位数)
int bits = 16; //SND_PCM_FORMAT_U8
snd_pcm_hw_param_set_format(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params, SND_PCM_FORMAT_U8)
6、设置采样频率
int rate = 44100;
snd_pcm_hw_param_set_rate_near(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params, int *rate, 0)
7、设置通道数
int chns = 2;
snd_pcm_hw_params_set_channels(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params, int chns)
8、设置一个周期的缓存大小
frames = 32; periodsize = frames * 2;
snd_pcm_hw_params_set_buffer_size_near(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params, int *periodsize)
9、设置一个周期的大小
snd_pcm_hw_params_set_period_size_near(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params, int *periodsize, 0)
10、设置hw_params
snd_pcb_hw_params(snd_pcm_t *handle, snd_pcm_hw_params_t * hw_params)
11、使用一个足够大的空间存放一个周期的数据
snd_pcb_hw_params_get_period_size(snd_pcm_t *handle, int *frame, 0);
12、开辟缓存空间
size = frames * rate * chns * bits / 8;
buffer = malloc(size);
snd_pcm_hw_param();
snd_pcb_hw_free();
snd_pcm_prepare();
13、读取数据
snd_pcm_readi();
14、写入数据
snd_pcm_writei(snd_pcm_t *handle, char * buffer, int frame)
15、失败情况 :snd_pcm_writei 返回值== -EPIPE 表示设备未就绪, 使设备准备好
snd_pcm_prepare(snd_pcm_t *handle);
alsa.rar_alsa_录音
版权申诉
5星 · 超过95%的资源 20 浏览量
2022-07-14
22:05:48
上传
评论
收藏 19KB RAR 举报
局外狗
- 粉丝: 64
- 资源: 1万+
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈