web-dev-qa-db-ja.com

ALSA:出力デバイスを一時的に変更する方法

ALSAでできる限り簡単なことをしたいのですが、タブレットの内蔵スピーカーの代わりにUSBヘッドフォンで音を出すようにします。 asound.rcalsa.confasound.confなどの構成ファイルを変更したくないので、デバイスの順序を変更してヘッドフォンをデフォルトの出力デバイスとして永続的に設定します。一時的な効果をしたいだけです。ヘッドフォンを抜くまで。不思議なことに、私は答えをグーグルできません。 alsamixerはそれを実行できますか?

Gnomeでは、GUIまたはCLIインターフェイスでPulseAudioを使用して現在の出力デバイスを簡単に選択できますが、PulseAudio自体はALSAの上で動作します!では、ALSAに出力デバイスの変更を強制する方法についても疑問に思います。

15
Boris Burkov

USBデバイスがシステムでサウンドカードとして表示されている場合は、man amixerおよびunmuteパラメータを使用します。

amixer -c 1 set Master playback 100% unmute

他のチャンネル(PCMなど)も確認してください。マニュアルの例は次のとおりです。

   amixer -c 1 sset Line,0 80%,40% unmute cap
          will set the second soundcard's left line input volume to 80% and right line
          input to 40%, unmute it, and select it as a source for capture (recording).

   amixer -c 1 -- sset Master playback -20dB
          will set the master volume of the second card to -20dB.  If the  master  has
          multiple channels, all channels are set to the same value.

   amixer -c 1 set PCM 2dB+
          will  increase  the PCM volume of the second card with 2dB.  When both play‐
          back and capture volumes exist, this is applied to both volumes.

   amixer -c 2 cset iface=MIXER,name='Line Playback Volume",index=1 40%
          will set the third soundcard's second line playback volume(s) to 40%

   amixer -c 2 cset numid=34 40%
          will set the 34th soundcard element to 40%
4
Jari Laamanen

IIUCでは、.asoundrcまたは/etc/asound.confを動的に更新できます。したがって、2つのファイルheadphones.conffront.confを使用して、デフォルトのデバイスを適切なhw:channel,device番号に設定し、「ACPIジャック/ヘッドフォンヘッドホンプラグ」イベントでそれらを切り替えることができるはずです。 「ln」を使用して/etc/asound.conf/etc/sounds/{headphones,front}.confのいずれかにリンクし、これを試します

0