linux嵌入式arm基础笔记5之录音与播放

1.粤嵌GEC6818开发板介绍 http://www.gec-lab.com/arm/show/72.html

2.粤嵌GEC6818平台介绍及其开发板配置_操作系统_心若十年的博客-CSDN博客 https://blog.csdn.net/qq_41768362/article/details/96891717

录音与播放 —> ALSA==================
一、编译ALSA库
先去到存放 alsa-lib-1.0.22.tar.bz2 alsa-utils-1.0.22.tar.bz2 的路径
1、编译alsa-lib-1.0.22
删除家目录下所有a开头的文件开始制作alsa库
sudo rm /home/gec/a* -rf
[sudo] password for gec: 123456 (不显示)
1)将alsa-lib-1.0.22.tar.bz2解压到Ubuntu的家目录
切换路径到有ALSA库开源源码压缩包的路径
tar jxvf alsa-lib-1.0.22.tar.bz2 -C ~

2)创建alsa库保存路径
mkdir /home/gec/alsa
chmod 777 /home/gec/alsa

3)切换路径到alsa-lib中编译alsa-lib库
cd ~/alsa-lib-1.0.22
配置编译选项
./configure --prefix=/home/gec/alsa --host=arm-linux --disable-python

–prefix --> 指定安装路径
–host --> 选定编译器
编译
make
安装
make install

2、编译alsa-utils-1.0.22
先去到存放 alsa-lib-1.0.22.tar.bz2 alsa-utils-1.0.22.tar.bz2 的路径
gec@ubuntu:/mnt/hgfs/share/7.18/资料/ALSA$
1)将alsa-utils-1.0.22.tar.bz2解压到Ubuntu的家目
tar jxvf alsa-utils-1.0.22.tar.bz2 -C ~
2)切换路径到alsa-utils-1.0.22
cd ~/alsa-utils-1.0.22
配置编译选项:
./configure --prefix=/home/gec/alsa --host=arm-linux --with-alsa-prefix=/home/gec/alsa/lib --with-alsa-inc-prefix=/home/gec/alsa/include --disable-alsamixer --disable-xmlto
编译
make
出现错误一:
make[2]: Entering directory ‘/home/gec/alsa-utils-1.0.22/alsaconf/po’mv: cannot stat `t-ja.gmo’: No such file or directory
make[2]: *** [ja.gmo] Error 1

解决方案:在/home/gec/alsa-utils-1.0.22/alsaconf/po创建t-ja.gmo文件
touch /home/gec/alsa-utils-1.0.22/alsaconf/po/t-ja.gmo
重新编译:make

出现错误二:
make[2]: Entering directory ‘/home/gec/alsa-utils-1.0.22/alsaconf/po’
mv: cannot stat `t-ru.gmo’: No such file or directory
make[2]: *** [ru.gmo] Error 1

解决方案:
在/home/gec/alsa-utils-1.0.22/alsaconf/po创建t-ru.gmo文件
touch /home/gec/alsa-utils-1.0.22/alsaconf/po/t-ru.gmo
安装
make install

二、移植到开发板
1、将~/alsa打包移动到开发板
1)切换路径到家目录:cd ~
2)打包并压缩alsa库:tar czvf alsa.tar.gz alsa
3)将打包好的alsa库移动到共享文件夹(注意前提共享文件夹是share)
mv alsa.tar.gz /mnt/hgfs/share
4)在开发板使用rx下载压缩包
rx alsa.tar.gz
5)解压到根“/”目录
tar zxvf alsa.tar.gz -C /
6)设置环境变量
export LD_LIBRARY_PATH= L D L I B R A R Y P A T H : / a l s a / l i b e x p o r t P A T H = LD_LIBRARY_PATH:/alsa/lib export PATH= LDLIBRARYPATH:/alsa/libexportPATH=PATH:/alsa/bin
注:在开发板;凡以命令行形式修改的系统配置(环境变量)均仅在本次开机有效
若想每次开机都有效则将修改系统配置(环境变量)的语句写入到配置文件中
方法:

export LD_LIBRARY_PATH= L D L I B R A R Y P A T H : / a l s a / l i b e x p o r t P A T H = LD_LIBRARY_PATH:/alsa/lib export PATH= LDLIBRARYPATH:/alsa/libexportPATH=PATH:/alsa/bin
写到/etc/init.d/rcS脚本中
vi /etc/init.d/rcS
使脚本生效:
source /etc/init.d/rcS
查看:
env
7)cp /alsa/share/alsa /usr/share -r
cp /alsa /home/gec -r
若开发板上没有home目录则需要手动创建
出现错误:
cp: can’t create directory ‘/home/gec’: No such file or directory
解决方法:
mkdir /home/gec -p
再次执行下面条命令
cp /alsa /home/gec -r

8)创建设备节点
注册好的依赖的设备文件节点(掉电必须重来一次)
mkdir /dev/snd
如果提示 mkdir: can’t create directory ‘/dev/snd’: File exists 继续往下执行
cd /dev/snd
使用rx 将 snd.sh 传到这个文件夹

创建某个设备节点,在/dev/snd目录下运行脚本“snd.sh”(“chmod 777 snd.sh” “./snd.sh”*)
如果提示下面信息
mknod: controlC0: File exists
mknod: pcmC0D0c: File exists
mknod: pcmC0D0p: File exists
mknod: timer: File exists
9)进入/etc/profil
步骤:
(1)vi /etc/profil
(2)source /etc/init.d/rcS 写到 /etc/profil这个文件里面
三、使用
/alsa/bin/aplay --> 播放
/alsa/bin/arecord --> 录音

去到自己的文件夹
录音:arecord
[root@开发板名 /]# arecord -d3 -c1 -r16000 -fS16_LE -twav abc.wav
Recording WAVE ‘abc.wav’ : Signed 16 bit Little Endian, Rate 16000 Hz, Mono —>正在录音
-d, --duration=# interrupt after # seconds -->录音的秒数
-c, --channels=# channels -->音轨 :1表示单通道,2表示立体音
-r, --rate=# sample rate -->采样频率(16000)
-f, --format=FORMAT sample format (case insensitive) -->量化位数:16位(S6_LE)
-t, --file-type TYPE file type (voc, wav, raw or au) -->封装格式(wav)

播放:aplay abc.wav

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值