Alsa:从特定输入获取音频到特定输出流以进行监控

Alsa:从特定输入获取音频到特定输出流以进行监控

我目前正在尝试分别在耳机端口和线路输出上监控麦克风输入和线路输入。

我尝试使用 aplay / arecord,甚至使用 alsamixer 配置;它不起作用。

我怎样才能做到这一点?

aplay -l and arecord -l给了我:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC662 rev1 Digital [ALC662 rev1 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC662 rev1 Alt Analog [ALC662 rev1 Alt Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

尽管我在 alsamixer 中有“line out”,但 aplay -l 中未列出它

更多详细信息,输出:

猫 /proc/asound/card*/codec#* :

https://pastebin.com/embed_js/X0Yir5mr

混合器:

https://pastebin.com/embed_js/r2B8X21V

答案1

好吧,让我们看看编解码器。编解码器描述是编解码器芯片的模拟部分的图形表示。逐个节点地查看描述,并在执行此操作时制作一张图片(connection描述输入节点),您将需要它。

您的编解码器实际上有 3 个 D/A 转换器,用于线路输出、扬声器和耳机(节点 0x02、0x03 和 0x04)。但是,默认配置中的 ALSA 只能驱动其中之一(无论出于何种原因)。然后,每个 D/AAudio Output被馈送到混频器(节点 0x0c、0x0d 和 0x0e)。每个混频器的另一个输入是反馈混频器(节点 0x0b)。反馈混频器依次从大多数引脚(包括输入)获取信号,并且它具有与其关联的 ALSA 混频器控制(XXX Mic Playback VolumeXXX Mic Playback Switch)。

请注意,没有“线路输入”和简单的“麦克风”输入,因此我假设您的“线路输入”是其中一个麦克风,而您的“麦克风”是另一个麦克风。

所以:尝试打开Front Mic Playback SwitchRear Mic Playback Switchin alsamixer,设置Front Mic Playback Volume和 的音量Rear Mic Playback Volume,这应该允许您监控两个输入播放时至线路输出或耳机。最后一部分似乎很重要,因为如果我正确解释这些值,ALSA 尚未启用三个 2 输入混频器之一。根据您的amixer输出,您似乎已经尝试过,但请增加音量以确保您不会错过它。

如果这不起作用,请/proc/asound/card*/codec\#*使用这些有效的设置制作另一个 Pastebin 副本和播放活动,这样我们就可以调试出了什么问题。

相关内容