编译alsa-aplay

下载alsa-lib-1.0.28.tar.bz2 alsa-utils-1.0.28.tar.bz2

编译alsa-lib-1.0.28.tar.bz2
export PATH= P A T H : / m y i m x 6 / 0 3 t o o l s / g c c l i n a r o a r m l i n u x g n u e a b i h f 4.9 2014.0 9 l i n u x / b i n . / c o n f i g u r e h o s t = a r m l i n u x g n u e a b i h f p r e f i x = PATH:/my-imx6/03_tools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin ./configure –host=arm-linux-gnueabihf –prefix= PWD/build –enable-shared –disable-python –with-configdir= P W D / b u i l d / a l s a l i b / s h a r e w i t h p l u g i n d i r = PWD/build/alsa_lib/share –with-plugindir= PWD/build/alsa_lib/lib
make
make install
将build/lib目录下的libsound*库拷贝到开发板的/usr/lib
在这里插入图片描述
在开发板创建目录
mkdir –p /my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28/build/alsa_lib/share

把/my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28/build/alsa_lib/share/alsa.conf 拷贝到板子的/my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28/build/alsa_lib/share目录

编译 alsa-utils-1.0.28.tar.bz2
./configure –host=arm-linux-gnueabihf –prefix=$PWD/build CFLAGS=”-I/my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28/build/include” LDFLAGS=”-L/my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28/build/lib -lasound” –disable-alsamixer –disable-xmlto
make
make install
设置音量:
amixer contents //查看结点及类型
// amixer cset numid=24,iface=MIXER,name=‘Headphone Volume’ 127 //设置音频输出声音

./amixer cset numid=24,iface=MIXER,name=‘Headphone Volume’ 127
播放音乐:
./aplay time.wav

重新编译库文件,与拷贝库文件到板子上面
cd /my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28 && make && make install && cp /my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/aplay/alsa-lib-1.0.28/build/lib/libasound* /my-imx6/05_rootfs/rootfs/myzr-rootfs/3.14.52/rootfs-qt5/usr/lib

amixer测试记录
./amixer cset numid=24,iface=MIXER,name=‘Headphone Volume’ 127
main
cset
snd_ctl_ascii_elem_id_parse(id, argv[0])
__snd_ctl_ascii_elem_id_parse(dst, str, NULL)
snd_ctl_elem_id_set_interface(dst, SND_CTL_ELEM_IFACE_MIXER)
obj->iface=0
snd_ctl_elem_id_set_numid(dst, atoi(str))
obj->numid=24
if (!strncasecmp(str, “mixer”, 5))
snd_ctl_elem_id_set_interface(dst, SND_CTL_ELEM_IFACE_MIXER);
obj->iface=2
snd_ctl_elem_id_set_name(dst, buf);
obj->name=Headphone Volume
show_control_id(id);
snd_ctl_open(&handle, card, 0));
snd_ctl_elem_info_set_id(info, id);
snd_ctl_elem_info(handle, info);
snd_ctl_elem_info_get_id(info, id);
snd_ctl_elem_value_set_id(control, id);
snd_ctl_elem_read(handle, control);
//handle dst info value
snd_ctl_ascii_value_parse(handle, control, info, argv[1]);
//执行了两次下面两条语句
tmp = get_integer(&ptr,
snd_ctl_elem_info_get_min(info),
snd_ctl_elem_info_get_max(info));
snd_ctl_elem_value_set_integer(dst, idx, tmp);
snd_ctl_elem_write(handle, control);//这句之后,控制起作用
snd_hctl_open(&hctl, card, 0);
snd_hctl_load(hctl);
snd_hctl_find_elem(hctl, id);
show_control(" “, elem, LEVEL_BASIC | LEVEL_ID);
printf(”%li", snd_ctl_elem_value_get_integer(control, idx));
return obj->value.integer.value[idx];

猜你喜欢

转载自blog.csdn.net/qq_41903811/article/details/84591048
今日推荐