web-dev-qa-db-ja.com

ヘッドフォンとラップトップスピーカーを切り替えるときのALSAPulseAudioサウンド出力

GentooシステムにPulseAudioをインストールしてから、ヘッドフォンジャックを抜いたときにラップトップのスピーカーから音声が出力されませんでした。

問題は、ALSAとPulseAudioがオーディオコントロールを管理する方法にあると思います。ヘッドフォンが接続されている場合、すべてが完全に正常であり、Intel HDA PCHのalsaコントロールが正しく構成されているため、「マスター」と「ヘッドフォン」のボリュームバーが正しく構成されています(root権限を持つalsamixerを見るとわかります)。ヘッドフォンジャックのプラグを抜くと、音量設定が明らかに正しい方法で自動的に変更されます。つまり、「Headphone」バーはミュートされて0に設定され、「Speaker」バーはミュートされておらず、最大になっています(ヘッドフォンジャックを接続するとミュートされます)。 「マスター」は常にミュートされておらず、希望の音量レベルになっています。ヘッドフォン出力をalsamixerで手動でミュート解除してポンプアップすることで、実際にスピーカー出力を機能させることができます。しかし、ヘッドホンを抜き差しするたびにこの操作をしなければなりません。それで、これを修正する方法はありますか?おそらく、ALSAシステムのスピーカー出力からヘッドフォン出力を切り離すのでしょうか?

私のラップトップは2011年のHPPavilionG6です。

ありがとう。

5
mdt

ファイル/usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.confを編集して、次のセクションを見つけます。

[Element Headphone]

そして、行にコメントします

switch = off
volume = off

最終結果は次のようになります

[Element Headphone]
#switch = off
#volume = off

問題は、私の場合、チャンネル「ヘッドフォン」がミュートされていたために発生していました。何らかの理由で、ノートブックのスピーカーが機能するためにミュートする必要はありません。

私の変更では、ヘッドホンのプラグを抜いたときに、ヘッドホンがミュートになったり、音量がゼロに設定されたりすることはありません。

あなたのケースでどのチャンネルがミュートされているかを「デバッグ」するには、alsamixerを使用できます。alsamixer内で「C」を押してオーディオカードを選択できます(デフォルトではpulseaudioメインチャンネルの音量が設定されています)。ヘッドホンを抜き差しして、何が変わるかを確認します。

3
diogovk