我有一个带有 sgtl5000 音频编解码器的嵌入式设备,通过 SPI 连接到 iMX8 CPU。
根据数据表,有一条从 LINE_IN 到 HP_OUT 的直接路线,这避免了声音通过 SPI 连接传输到 CPU。
ALSA/alsamixer 是否允许我进行此路由,或者它仅限于那些遍历内核的音频流?
使用amixer
,我可以看到:
root@test217:~# amixer
Simple mixer control 'Headphone',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 127
Mono:
Front Left: Playback 89 [70%] [-7.00dB] [on]
Front Right: Playback 89 [70%] [-7.00dB] [on]
Simple mixer control 'Headphone Mux',0
Capabilities: enum
Items: 'DAC' 'LINE_IN'
Item0: 'DAC'
...
什么命令可以让我从Headphone Mux
>>切换到?Item0
DAC
LINE_IN
答案1
看起来实现我需要的部分(两个多路复用器的操作)可以使用 amixer 命令本身来完成:
root@test217:~# amixer sset 'Headphone Mux' 'LINE_IN'
Simple mixer control 'Headphone Mux',0
Capabilities: enum
Items: 'DAC' 'LINE_IN'
Item0: 'LINE_IN'
root@test217:~# amixer sset 'Capture Mux' 'MIC_IN'
Simple mixer control 'Capture Mux',0
Capabilities: enum
Items: 'MIC_IN' 'LINE_IN'
Item0: 'MIC_IN'
这尚未检查,因为我无法使用扬声器。