当前位置: 首页 > 编程笔记 >

arm linux利用alsa驱动并使用usb音频设备

陈博容
2023-03-14
本文向大家介绍arm linux利用alsa驱动并使用usb音频设备,包括了arm linux利用alsa驱动并使用usb音频设备的使用技巧和注意事项,需要的朋友参考一下

一.背景:

arm linux的内核版本是3.13.0

二.准备工作

添加alsa驱动到内核中,也就是在编译内核的时候加入以下选项:

接下来就重新编译内核即可

三.交叉编译alsa-lib和alsa-utils (alsa-utils是一系列的音频设备控制工具,而alsa-lib是alsa-utils依赖的库,所以先将alsa-lib编译好)

3.1交叉编译alsa-lib

3.2交叉编译alsa-utils

四.将三编译好的库及工具都拷贝至arm开发板(笔者通常直接将编译好的都压缩好之后再复制到开发板进行解压,以避免直接复制造成软链接无法复制的情况)

五.使用alsa-utils中的工具进行各类操作

5.1录音:

arecord -D "plughw:0,0" demo.wmv

5.2播放:

aplay -D "plughw:0,0" demo.wmv

 5.3获取控制信息:

amixer controls

输出信息如下:

numid=3,iface=MIXER,name='Master Mode Switch'
numid=29,iface=MIXER,name='Master Mux'
numid=4,iface=MIXER,name='Master Quality Switch'
numid=2,iface=MIXER,name='Master Switch'
numid=1,iface=MIXER,name='Master Volume'
numid=7,iface=MIXER,name='PCM Mode Switch'
numid=6,iface=MIXER,name='PCM Switch'
numid=5,iface=MIXER,name='PCM Volume'
numid=9,iface=MIXER,name='Mic Switch'
numid=8,iface=MIXER,name='Mic Volume'

5.4 获取录音时的音量大小

从5.3可以获取到”numid=8,iface=MIXER,name='Mic Volume'“这条信息,从Mic Volume可以得知是Mic的音量

amixer cget numid=8,iface=MIXER,name='Mic Volume'

5.4设置录音时的音量大小

amixer cset numid=8,iface=MIXER,name='Mic Volume' 255

六:注意事项:

如果将编译好的alsa-utils中的工具复制到fat32格式的存储设备的时候,注意fat32是不支持软链接的,此时需要直接复制一个aplay并将名称改为arecord:

cp aplay arecord

总结

以上所述是小编给大家介绍的arm linux利用alsa驱动并使用usb音频设备 ,希望对大家有所帮助!

 类似资料:
  • 我试图使用alsa同时播放两个wav文件。请注意,wav文件具有不同的采样率。这是可能的,音频流被混合并发送到音频芯片。(我正在嵌入式linux设备上开发。)但有一个流的播放速度比正常快几倍。所以我猜重新采样有问题。 我有一个默认设备,在 /etc/asound.conf中启用了dMix插件,并将采样率设置为44100Hz。但据我所知,ALSA在内部将所有流重新采样为48khz并混合它们,然后再次

  • AndroidLollipop现在支持USB音频开箱即用。但是,我希望能够控制到USB音频设备的音频路由。Android SDK中是否有任何方法允许这种程度的控制?我尝试使用setForceUse,但这在不同的设备上是不一致的,而且似乎只适用于未连接USB音频设备的情况(更不用说SetForceUser没有USB选项)。 例如,我希望我的应用程序能够在普通手机耳机插孔上播放,但通过切换按钮,可以将

  • 这是linux下通用声卡驱动程序

  • 本文向大家介绍使用VBS禁用、启动USB存储设备,包括了使用VBS禁用、启动USB存储设备的使用技巧和注意事项,需要的朋友参考一下 USB存储设备控制 By Yu2n XP系统测试通过,需要管理员权限。 在下次插拔设备时生效,无须重启。

  • 我已经使用程序youtube-dl下载了一个YouTube播放列表,我选择了单独下载视频和音频,我现在有一个文件夹充满了视频及其相应的音频,我希望与ffmpeg合并在一起。 我需要使用批处理脚本来执行此操作,但问题是youtube-dl在原始文件的标题之后添加了临时字母,因此视频与其对应的音频没有相同的名称,文件名如下所示: 如何使用windows批处理脚本和ffmpeg合并这些多个视频/音频文件

  • 我们需要记录从有线或蓝牙耳机扬声器输出的设备音频。例如,如果用户在后台运行音乐应用程序时听了一些歌曲,我们想录制这首歌。是否可以使用AudioUnit实现输出录制?我们使用PalayAndRecords类别用于共享audio会话,带有AVAudioSessionClass oryOptionMixWith其他人选项。