Linux オーディオ ルーティングの適応 (amixer)

ミキサーの詳しい説明

Alsa は、Advanced Linux Sound Architecture の略語で、Linux オペレーティング システム上でオーディオと MIDI のサポートを提供する、先進的な Linux サウンド アーキテクチャです。Alsa が提供するデバッグ コマンドには、テキストベースのグラフィカル インターフェイスに基づく alsamixer と、テキスト モードの amixer (コマンド ライン モードとも呼ばれます) が含まれます。
Ubuntu Debian などの一般的な Linux ターミナル ファイル システムのオーディオ開発プロセスでは、ディスプレイはありませんが、オーディオ デバイス情報を表示する必要があるため、amixer は良い選択です。次に、rk3568 チップの rk809(rk817) コーデックを例として、サウンド カードのパラメータ設定の取得方法とサウンド カードのパラメータの設定方法を説明します。



1. amixerコマンドの詳細説明

1.1 サウンドカードのオーディオルーティングを設定する

1.1.1 属性名に従ってルーティング属性を設定する

a) 「再生パス」を「SPK_HP」に設定します。

 $ amixer -c 0 sset "Playback Path" "SPK_HP" 
Simple mixer control 'Playback Path',0
Capabilities: enum
Items: 'OFF' 'RCV' 'SPK' 'HP' 'HP_NO_MIC' 'BT' 'SPK_HP' 'RING_SPK' 'RING_HP' 'RING_HP_NO_MIC' 'RING_SPK_HP'
Item0: 'SPK_HP'

b) 「再生パス」のパラメータ値を取得します。

$ amixer -c 0 sget "Playback Path"
Simple mixer control 'Playback Path',0
Capabilities: enum
Items: 'OFF' 'RCV' 'SPK' 'HP' 'HP_NO_MIC' 'BT' 'SPK_HP' 'RING_SPK' 'RING_HP' 'RING_HP_NO_MIC' 'RING_SPK_HP'
Item0: 'SPK_HP'

1.1.2 サウンドカードのオーディオルーティングプロパティを取得する

a) サウンドカードの情報を素早く表示する方法、コマンドは次のとおりです。

$ amixer -c 0 contents
numid=2,iface=MIXER,name='Capture MIC Path'
; type=ENUMERATED,access=rw------,values=1,items=4
; Item #0 'MIC OFF'
; Item #1 'Main Mic'
; Item #2 'Hands Free Mic'
; Item #3 'BT Sco Mic'
: values=1
numid=1,iface=MIXER,name='Playback Path'
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'OFF'
; Item #1 'RCV'
; Item #2 'SPK'
; Item #3 'HP'
; Item #4 'HP_NO_MIC'
; Item #5 'BT'
; Item #6 'SPK_HP'
; Item #7 'RING_SPK'
; Item #8 'RING_HP'
; Item #9 'RING_HP_NO_MIC'
; Item #10 'RING_SPK_HP'
: values=6

b) サウンドカードの内容を確認できるだけでなく、カードの制御情報も確認できます

$ amixer -c 0 controls
numid=2,iface=MIXER,name='Capture MIC Path'
numid=1,iface=MIXER,name='Playback Path'

1.1.3 制御情報に従ってサウンドカードのステータスを設定する

a) 指定したサウンドカードの制御可能な属性情報を設定します

$ amixer -c 0 cget numid=1,iface=MIXER,name='Playback Path'
numid=1,iface=MIXER,name='Playback Path'
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'OFF'
; Item #1 'RCV'
; Item #2 'SPK'
; Item #3 'HP'
; Item #4 'HP_NO_MIC'
; Item #5 'BT'
; Item #6 'SPK_HP'
; Item #7 'RING_SPK'
; Item #8 'RING_HP'
; Item #9 'RING_HP_NO_MIC'
; Item #10 'RING_SPK_HP'
: values=6

b) 指定したサウンドカードの制御可能な属性情報を取得

$ amixer -c 0 cset numid=1,iface=MIXER,name='Playback Path' 4
numid=1,iface=MIXER,name='Playback Path'
; type=ENUMERATED,access=rw------,values=1,items=11
; Item #0 'OFF'
; Item #1 'RCV'
; Item #2 'SPK'
; Item #3 'HP'
; Item #4 'HP_NO_MIC'
; Item #5 'BT'
; Item #6 'SPK_HP'
; Item #7 'RING_SPK'
; Item #8 'RING_HP'
; Item #9 'RING_HP_NO_MIC'
; Item #10 'RING_SPK_HP'
: values=4

1.2 システムメディアのボリュームを設定する

$ amixer
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 65536 [100%] [on]
Front Right: Playback 65536 [100%] [on]
Simple mixer control 'Capture',0
Capabilities: cvolume cswitch cswitch-joined
Capture channels: Front Left - Front Right
Limits: Capture 0 - 65536
Front Left: Capture 65536 [100%] [on]
Front Right: Capture 65536 [100%] [on]

a) ミュートの設定、ミュートの解除

# 播放音频静音
amixer --set 'Master' mute
# 录音静音
amixer --set 'Capture' mute

# 解除播放静音
amixer --set 'Master' unmute
# 接触录音静音
amixer --set 'Capture' unmute

b) 音量を設定する

amixer sset 'Master',0 100%,80% unmute
# -c 选择声卡, 不设置则为默认
# 'Master',0:Simple mixer control 'Master',0
# 100%,80% : 左声道、右声道音量

2.ミキサー

amixer - ALSA サウンドカード ドライバー用のコマンドライン ミキサー。

$ amixer --help
Usage: amixer <options> [command]

Available options:
  -h,--help       this help
  -c,--card N     select the card
  -D,--device N   select the device, default 'default'
  -d,--debug      debug mode
  -n,--nocheck    do not perform range checking
  -v,--version    print version of this program
  -q,--quiet      be quiet
  -i,--inactive   show also inactive controls
  -a,--abstract L select abstraction level (none or basic)
  -s,--stdin      Read and execute commands from stdin sequentially
  -R,--raw-volume Use the raw value (default)
  -M,--mapped-volume Use the mapped volume

Available commands:
  scontrols       show all mixer simple controls
  scontents       show contents of all mixer simple controls (default command)
  sset sID P      set contents for one mixer simple control
  sget sID        get contents for one mixer simple control
  controls        show all controls for given card
  contents        show contents of all controls for given card
  cset cID P      set control contents for one control
  cget cID        get control contents for one control

Tips

a) システム情報に従ってサウンドカードの数に関する情報を表示できます。

cat /proc/asound/cards
 0 [rockchiprk809co]: rockchip_rk809- - rockchip,rk809-codec
                      rockchip,rk809-codec

b) -c パラメータ サウンド カードの名前または番号、つまり '0' または 'rockchiprk809co'
c) sset/sget パラメータは「contents」の内容に対応し、cset/cget パラメータはコントロールのプロパティに対応します

おすすめ

転載: blog.csdn.net/weixin_35723192/article/details/128639656