amxer でマイク・スピーカーのレベル設定ができない
◯発生現象
amixer でマイク、スピーカーのレベル設定ができない
◯原因
指定するデバイス名が 'Mic'、'Speaker'とは限らずハードウエアによってそれぞれ異なる。
◯各種デバイス名の例
・Speaker PHAT (Pimoronii)
スピーカー 'Master'
・ReSpeaker (Pimoroni)
マイク左 'Left Input Boost Mixer LINPUT1'
マイク右 'Right Input Boost Mixer RINPUT1'
スピーカー 'Playback'
・USB オーディオ変換アダプタ (ノーブランド)
マイク 'Mic'
スピーカー 'Speaker'
◯作成した関数
ボリュームレベル(%)、デバイスナンバー、カードナンバー、上記で調べたデバイス名を指定して呼び出す。
import subprocess def set_micvol(mic_vol=50,dev=0,crd=0,device='Mic'): # マイク・ボリュームレベル設定 amixer = '/usr/bin/amixer' subprocess.call([amixer,'-c','0','sset',device,str(mic_vol)+'%']) time.sleep(0.1) def set_sndvol(snd_vol=50,dev=0,crd=0,device='Speaker'): # スピーカ・ボリュームレベル設定 amixer = '/usr/bin/amixer' subprocess.call([amixer,'-c','0','sset',device,str(snd_vol)+'%']) time.sleep(0.1)
コマンドに絶対パスを入れ込んでいるのはcron対策です。