Enregistrement du son en utilisant ALSA depuis Line IN

J’ai développé une petite application qui enregistre le son en utilisant le pilote ALSA sur un système embarqué.
J’ai maintenant un problème pour sélectionner le périphérique que je veux enregistrer depuis MIC / Line IN.
L’application est configurée pour démarrer au démarrage du système, mais mon périphérique d’enregistrement par défaut est défini sur MIC. Pour que mon application fonctionne, je dois aller sur amixer et régler le périphérique d’enregistrement de MIC sur Line IN, puis démarrer mon application.

Connaissez-vous un moyen de faire ce changement depuis la commande app ou amixer qui changera ce périphérique d’enregistrement et je peux le mettre dans un script et l’exécuter au démarrage.

Ai-je dit que cette application s’exécute sur un système embarqué et que j’ai besoin d’un moyen de configurer le système avant que mon application ne démarre.

EDIT1:
voici ma sortie d’amixer:

root@freescale ~$ amixer Simple mixer control 'Headphone',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 127 Front Left: 103 [81%] Front Right: 103 [81%] Simple mixer control 'Playback',0 Capabilities: volume Playback channels: Front Left - Front Right Capture channels: Front Left - Front Right Limits: 0 - 192 Front Left: 192 [100%] Front Right: 192 [100%] Simple mixer control 'Capture',0 Capabilities: cvolume Capture channels: Front Left - Front Right Limits: Capture 0 - 15 Front Left: Capture 15 [100%] Front Right: Capture 15 [100%] Simple mixer control 'Capture Vol Reduction',0 Capabilities: enum Items: 'No Change' 'Reduced by 6dB' Item0: 'No Change' Simple mixer control 'ADC Mux',0 Capabilities: enum Items: 'MIC_IN' 'LINE_IN' Item0: 'MIC_IN' Simple mixer control 'DAC Mux',0 Capabilities: enum Items: 'DAC' 'LINE_IN' Item0: 'DAC' Simple mixer control 'MIC GAIN',0 Capabilities: enum Items: '0dB' '20dB' '30dB' '40dB' Item0: '0dB' 

Merci beaucoup Gabriel

Je l’ai finalement fait. J’utilise amixer avec la commande “cset” pour le faire.

 amixer -c 0 cset numid=7 1 

“-c 0” est la première carte son
“numid = 7” est l’appareil d’enregistrement actif.
“1” est la deuxième entrée … dans mon cas 0-MIC 1-LINEIN

 amixer info 

Obtient tous les contrôles avec leurs numéros ex:

  amixer info Card default 'mxsevk'/'mxs-evk (SGTL5000)' Mixer name : '' Components : '' Controls : 7 Simple ctrls : 7 root@freescale ~$ amixer contents numid=5,iface=MIXER,name='Headphone Volume' ; type=INTEGER,access=rw---,values=2,min=0,max=127,step=0 : values=103,103 numid=7,iface=MIXER,name='ADC Mux' ; type=ENUMERATED,access=rw---,values=1,items=2 ; Item #0 'MIC_IN' ; Item #1 'LINE_IN' : values=1 numid=3,iface=MIXER,name='Capture Vol Reduction' ; type=ENUMERATED,access=rw---,values=1,items=2 ; Item #0 'No Change' ; Item #1 'Reduced by 6dB' : values=0 numid=2,iface=MIXER,name='Capture Volume' ; type=INTEGER,access=rw---,values=2,min=0,max=15,step=0 : values=15,15 numid=4,iface=MIXER,name='Playback Volume' ; type=INTEGER,access=rw---,values=2,min=0,max=192,step=0 : values=192,192 numid=6,iface=MIXER,name='DAC Mux' ; type=ENUMERATED,access=rw---,values=1,items=2 ; Item #0 'DAC' ; Item #1 'LINE_IN' : values=0 numid=1,iface=MIXER,name='MIC GAIN' ; type=ENUMERATED,access=rw---,values=1,items=4 ; Item #0 '0dB' ; Item #1 '20dB' ; Item #2 '30dB' ; Item #3 '40dB' : values=0 

Si alsactl est disponible, vous pouvez ajuster les valeurs d’entrée / sortie / niveau à votre convenance et exécuter

 alsactl -f settings.alsa store 

et inversement

 alsactl -f settings.alsa restore 

au démarrage.