使用来自Line IN的ALSA录制声音

前端之家收集整理的这篇文章主要介绍了使用来自Line IN的ALSA录制声音前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我开发了一个小应用程序,它在嵌入式系统上使用ALSA驱动程序记录声音.
现在我在选择要从MIC / Line IN录制的设备时遇到问题.
应用程序设置为在系统启动时启动,但我的默认录制设备设置为MIC.为了我的应用程序工作,我必须去amixer并将录音设备从MIC设置为Line IN,然后启动我的应用程序.

你们知道从app或amixer命令改变这个录音设备的方法来改变这个录音设备吗?我可以把它放在一个脚本中,在启动时运行它.

我是否说这个应用程序在嵌入式系统上运行,我需要一种方法来在我的应用程序启动之前配置系统.

EDIT1:
这是我的amixer输出

  1. root@freescale ~$amixer
  2. Simple mixer control 'Headphone',0
  3. Capabilities: volume
  4. Playback channels: Front Left - Front Right
  5. Capture channels: Front Left - Front Right
  6. Limits: 0 - 127
  7. Front Left: 103 [81%]
  8. Front Right: 103 [81%]
  9. Simple mixer control 'Playback',0
  10. Capabilities: volume
  11. Playback channels: Front Left - Front Right
  12. Capture channels: Front Left - Front Right
  13. Limits: 0 - 192
  14. Front Left: 192 [100%]
  15. Front Right: 192 [100%]
  16. Simple mixer control 'Capture',0
  17. Capabilities: cvolume
  18. Capture channels: Front Left - Front Right
  19. Limits: Capture 0 - 15
  20. Front Left: Capture 15 [100%]
  21. Front Right: Capture 15 [100%]
  22. Simple mixer control 'Capture Vol Reduction',0
  23. Capabilities: enum
  24. Items: 'No Change' 'Reduced by 6dB'
  25. Item0: 'No Change'
  26. Simple mixer control 'ADC Mux',0
  27. Capabilities: enum
  28. Items: 'MIC_IN' 'LINE_IN'
  29. Item0: 'MIC_IN'
  30. Simple mixer control 'DAC Mux',0
  31. Capabilities: enum
  32. Items: 'DAC' 'LINE_IN'
  33. Item0: 'DAC'
  34. Simple mixer control 'MIC GAIN',0
  35. Capabilities: enum
  36. Items: '0dB' '20dB' '30dB' '40dB'
  37. Item0: '0dB'

非常感谢,
加布里埃尔

最佳答案
我终于做到了.我正在使用amixer和“cset”命令来完成它.

  1. amixer -c 0 cset numid=7 1

“-c 0”是第一张声卡
“numid = 7”是活动的录制设备.
“1”是第二个输入…在我的情况下0-MIC 1-LINEIN

  1. amixer info

获取所有带有numtes的控件:

  1. amixer info
  2. Card default 'mxsevk'/'mxs-evk (SGTL5000)'
  3. Mixer name : ''
  4. Components : ''
  5. Controls : 7
  6. Simple ctrls : 7
  7. root@freescale ~$amixer contents
  8. numid=5,iface=MIXER,name='Headphone Volume'
  9. ; type=INTEGER,access=rw---,values=2,min=0,max=127,step=0
  10. : values=103,103
  11. numid=7,name='ADC Mux'
  12. ; type=ENUMERATED,values=1,items=2
  13. ; Item #0 'MIC_IN'
  14. ; Item #1 'LINE_IN'
  15. : values=1
  16. numid=3,name='Capture Vol Reduction'
  17. ; type=ENUMERATED,items=2
  18. ; Item #0 'No Change'
  19. ; Item #1 'Reduced by 6dB'
  20. : values=0
  21. numid=2,name='Capture Volume'
  22. ; type=INTEGER,max=15,step=0
  23. : values=15,15
  24. numid=4,name='Playback Volume'
  25. ; type=INTEGER,max=192,step=0
  26. : values=192,192
  27. numid=6,name='DAC Mux'
  28. ; type=ENUMERATED,items=2
  29. ; Item #0 'DAC'
  30. ; Item #1 'LINE_IN'
  31. : values=0
  32. numid=1,name='MIC GAIN'
  33. ; type=ENUMERATED,items=4
  34. ; Item #0 '0dB'
  35. ; Item #1 '20dB'
  36. ; Item #2 '30dB'
  37. ; Item #3 '40dB'
  38. : values=0

猜你在找的Linux相关文章