linux音频测试记录
linux音频控制在驱动中一般是一个主设备号,一堆次设备号,我的开发板上对应的音频接口如下
查看声卡驱动
ls -l /dev/snd/*
/dev/snd/controlC0 /dev/snd/pcmC1D0c /dev/snd/pcmC2D0p
/dev/snd/controlC1 /dev/snd/pcmC1D0p /dev/snd/pcmC3D0c
/dev/snd/controlC2 /dev/snd/pcmC1D1c /dev/snd/pcmC3D0p
/dev/snd/controlC3 /dev/snd/pcmC1D1p /dev/snd/timer
/dev/snd/pcmC0D0c /dev/snd/pcmC1D2c
/dev/snd/pcmC0D0p /dev/snd/pcmC1D2p
一个声卡共用一个主设备号,里面很多设备,每个设备基本上都会有控制(control)(eg:音量控制),声音采集(capture)和声音播放(playback),三种次设备号
eg:
/dev/snd/controlC0
/dev/snd/pcmC0D0c
/dev/snd/pcmC0D0p
我开发板上使用的驱动是tinyalsa
测试代码一般在开发板源码库上
eg: /opt/EmbedSky/TQT507/linux-4.9/longan/test/dragonboard/src/lib/tinyalsa-master-2.0/
源码库中可能有多套测试代码,我这个就有三套源码,可以向厂家咨询或者自己尝试
编译过程中可能出现,参数错误一类的问题,那就换个源码库吧,开发板厂家的话,也只是参考,自己实际验证才是真理
./tinyplay music-44K1.wav -D 0 -d 0
对用驱动名称 /dev/snd/pcmC0D0p
一般的都会将snd对应的编译成动态库进行调用,我嫌麻烦,直接编译在一起了
https://files.cnblogs.com/files/RYSBlog/tinyalsa-master-2.0.zip
//关于声音的其他基础知识(看完后再看程序就知道了)
多媒体文件格式(五):PCM / WAV 格式 - 知乎 (zhihu.com)
WAV文件头相关信息解析
更深入的学习
(131条消息) 视音频数据处理入门:PCM音频采样数据处理_雷霄骅的博客-CSDN博客_pcm绘制波形图
//