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


15

ALSAで可能な限り簡単なことをしたい:タブレットの内部スピーカーの代わりにUSBヘッドフォンで音を出すようにしたい。私は、次のような変更の設定ファイルにはしたくないasound.rcか、alsa.confまたはasound.confと、私はヘッドフォンを抜いちょうどまで、一時的な効果を望む恒久的デバイスの順序を変更することにより、デフォルトの出力デバイスとしてヘッドフォンを設定します。奇妙なことに、私は答えをグーグルで検索することはできません。それがalsamixerできますか?

Gnomeでは、現在の出力デバイスを簡単に選択できます。 PulseAudioでは、GUIまたはCLIインターフェイスでますが、それPulseAudio自体はALSAの上で動作します!また、ALSAが出力デバイスを変更することをどのように強制するのでしょうか?


alsamixerインターフェイスに「サウンドカードの選択」オプションがありますが、実際に出力デバイスも設定されるかどうかはわかりません。
goldilocks

1
いいえ、残念ながら、このサウンドカードのパラメーターを表示し、調整することはできますが、出力をリダイレクトしません
ボリスバーコフ

こんにちは、alsamixerターミナルからexec を試して、を押しF6て別のサウンドカードを選択できます。:)
slackmart

@sgmartこんにちは、sgmart、私はまさにそれをしましたが、それはそのデバイスにサウンドを転送せず、パラメータを調整するためにそのデバイスを選択します。
ボリスブルコフ

4
alsamixerユーティリティには、マスター、PCIなどのいくつかのコントロールがあります。MMラベル(MM =ミュート)があるかどうかを確認Mします。キーボードのキーを使用してサウンドを有効にします。
slackmart

回答:


4

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%

ありがとう、ヤリ、うまくいく。私はALSAのマニュアルを読んで質問があります:amixerとalsamixerによってリストされたデバイスは実際にはハードウェアデバイスではなく、/ usr / share / alsa / alsa.confのalsaプラグインと友人によって作成されたALSAデバイスですか?私はほとんどこれらのプラグインの構文を理解していますが、「pcm」、「ctl」、「type」などの非常に基本的なキーワードの定義が見つかりません。doxygenドキュメントでキーワードのリストを見つけることができませんでした:alsa-project.org/alsa-doc/alsa-lib、alsa-project.org/alsa-doc/alsa-lib/conf.html。それらについての情報源を知っていますか?
ボリスブルコフ

8
これは実際には元の質問を解決しません。パラメーターを設定できますが、音声が出力されるカードは変更されません。
自分自身

2
これが実際に元の質問に答える場合、完全な例が必要です。これは、alsamixerができないことをどのように行いますか?明らかに、alsamixerは別のサウンドカードを介して出力に切り替えることはできません。または、私の場合、スピーカー/ヘッドフォンの代わりに同じサウンドカードであるHDMIから出力したかったのです。Pulseaudioはこれらのことを行いますが、どうやって?これを良い答えにするためには、最初から最後までの例が必要です。
コリンキーナン

1
これは答えとして選ばれました-質問はまさに私が探しているものです:出力に使用されるカードを一時的に変更する方法。ただし、@ oneselfが既に述べたように、この答えは実際にその方法を説明していません。ほぼ同じタイトルで新しい質問をすることは、重複として閉じられる可能性があります。
-domsson

1
@domssonはこれにリンクして、答えが問題を解決しなかったことを説明します。それは、それがだまされて閉じられないことを保証するはずです。
テルドン

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.