kernel的config加上 CONFIG_SND_ALOOP=y ,aplay不能播放声音

概念:CONFIG_SND_ALOOP

CONFIG_SND_ALOOP 是 Linux 内核配置选项之一,用于启用 ALSA Loopback 驱动程序。

ALSA(Advanced Linux Sound Architecture)是 Linux 上的音频架构,提供了一个统一的音频接口,使应用程序可以与音频硬件进行通信。而 ALSA Loopback 驱动程序是 ALSA 的一部分,它允许将音频流从一个 ALSA 设备传递到另一个 ALSA 设备,实现音频的回环或路由功能。

当启用 CONFIG_SND_ALOOP 选项时,内核会编译并加载 ALSA Loopback 驱动程序模块(snd-aloop.ko),使其可用于创建虚拟的 ALSA 设备,从而实现音频的回环或路由。这对于一些特定的应用场景非常有用,比如测试、音频处理等。

要启用 CONFIG_SND_ALOOP 选项,你需要修改内核配置文件(通常为 .config)中的相应项,并重新编译内核。具体的修改方法可能因不同的内核版本和发行版而有所不同,建议查阅相关的内核文档或社区资源以获取详细的指导。

kernel的config加上 CONFIG_SND_ALOOP=y ,aplay不能播放声音

在 Linux 内核配置中启用 CONFIG_SND_ALOOP 选项会启用 ALSA Loopback 驱动程序,它允许创建虚拟音频设备以进行音频流的循环回放。但是,启用 CONFIG_SND_ALOOP 并不意味着该虚拟设备会自动连接到物理音频设备用于播放声音。

为了将 ALSA Loopback 设备连接到物理音频设备,需要通过 ALSA Mixer 工具进行配置。以下是使用 alsamixer 命令连接 ALSA Loopback 设备到物理音频设备的步骤:

  1. 安装 alsa-utils 包(如果未安装):
sudo apt-get install alsa-utils
  1. 打开 alsamixer
alsamixer
  1. 按 F6 键选择要控制的音频设备。

  2. 使用左右箭头键选择 “Loopback PCM” 或类似名称的通道。

  3. 使用上下箭头键将音量调到适当的水平。

  4. 可能需要按下空格键打开或关闭通道。

  5. 按 Esc 键退出 alsamixer
    在这里插入图片描述

完成上述步骤后,ALSA Loopback 设备应该已经连接到物理音频设备,并可以使用 aplay 命令播放音频文件。
查看节点:

[root@RK356X:~]# arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 1: rockchiprk809co [rockchip,rk809-codec], device 0: fe410000.i2s-rk817-hifi rk817-hifi-0 [fe410000.i2s-rk817-hifi rk817-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: rockchipes7202 [rockchip,es7202], device 0: fe440000.pdm-es7202 pdm 0 es7202 pdm 0-0 [fe440000.pdm-es7202 pdm 0 es7202 pdm 0-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
[root@RK356X:~]#

这里用rk809-codec播放
参数解析
-D 指定了录音设备,1,0 是card 1 device 0的意思

[root@RK356X:~]# aplay -D hw:1,0  /root/bell.wav
Playing WAVE '/root/bell.wav' : Signed 16 bit Little Endian, Rate 11025 Hz, Stereo
Warning: rate is not accurate (requested = 11025Hz, got = 8000Hz)
         please, try the plug plugin

猜你喜欢

转载自blog.csdn.net/weixin_37787043/article/details/132347999
今日推荐