web-dev-qa-db-ja.com

ヘッドフォンを外さずにヘッドフォンとスピーカーを切り替える方法

ヘッドフォンを接続すると、オーディオ出力デバイスがスピーカーからヘッドフォンに切り替わります。

ヘッドフォンを常に抜き差しするのではなく、最終的にコード/ジャックが磨耗するのではなく、ソフトウェアスイッチを使用したいだけです。

サウンド設定を開き、「ヘッドフォン->内蔵オーディオ」から「ライン出力->内蔵オーディオ」に切り替えると、スピーカーまたはヘッドフォンから音が出ません。

Alsamixerを開いて、ヘッドフォンのプラグを抜くとどうなるかを確認しました。

ヘッドフォン: Headphones in

ヘッドフォン出力: Headphones out

ヘッドフォンを接続した状態で、ヘッドフォンが切れていてもスピーカーから音が出ない場合は、すべての設定を手動で設定に合わせて変更しました。

補足として、「サウンド設定」でオーディオ出力デバイスを変更すると、alsamixerにも同じ変更が発生します。

20
user276318

スピーカーとヘッドフォンの両方をプラグインし、オンザフライでソフトウェアを切り替える

設計上、Pulseaudioはヘッドフォンが接続されると自動的にライン出力をオフにし、代わりにヘッドフォンスライダーを使用します。 alsamixerでこの動作を確認できます。私たちが望むのは、ヘッドフォンとライン出力のスライダーを別々に同時に動作させることです。これは、Realtekのジャックをリマップして、ヘッドフォン用にリアグリーン、スピーカー用にブルー(alsa-toolsのhdajackretaskの助けを借りて)にしたい場合に非常に便利です。

これを実現するには、Pulseaudioミキサーの構成を直接編集する必要があります。

1. pulseaudioにヘッドフォンが常に接続されていることを伝えます。

編集:

/usr/share/pulseaudio/alsa-mixer/paths/analog-output-lineout.conf

見つける:

[Jack Headphone]
state.plugged = no
state.unplugged = unknown

noyesに変更します。

コンピューターのケースの前面にあるジャックを使用している場合は、代わりに[Jack Front Headphone]を変更します。

2.デフォルトでは、ライン出力の音量はマスターによってのみ制御され、ライン出力スライダー自体では制御されません。

Line OutをMasterにマージします。このスニペットをファイルの最後に追加します。

[Element Line Out]
switch = mute
volume = merge

3.ヘッドフォンを使用するときは、ライン出力を完全に遮断する必要があります。

編集:

/usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf

このスニペットをファイルの最後に追加します。

[Element Line Out]
switch = off
volume = off

一部のシステムでは、次のスニペットを追加して、Frontを無効にする必要があります。

[Element Front]
switch = off
volume = off

4. Pulseaudioと同様に、ヘッドフォンを接続すると、Alsa自体がスピーカーを切断します。

Alsamixerを開く:alsamixer -c0またはalsamixer -c1

つかいます / 自動ミュートモードに。で自動ミュートモードを無効にする 。 alsamixerを閉じる Esc

alsactl storeで変更を保存します

5. Pulseaudioを再起動します

$ pulseaudio -k
$ pulseaudio --start

これで、pulseaudioの同じシンクに2つの個別のポートがあります。彼らはお互いをミュートするので、ヘッドフォンに切り替えることができ、これはラインアウトをミュートし、その逆も同様です。ポートを切り替えるには、GnomeまたはPlasmaサウンドミキサーを使用するか、適切なデスクトップ拡張機能をインストールします。


ソース

9

スピーカーとヘッドフォンを切り替えることができるようにするには、次の手順を実行します。

  1. alsamixerを実行します。
  2. 必要に応じて、サウンドカードを選択します F6
  3. 右矢印で「自動ミュート」に移動します 
  4. 下矢印で無効にします 
  5. 押す Esc 出る。

または、1つのコマンドでこれらすべての手順を実行できます。

  1. ターミナルを開く
  2. amixer -c 1 set 'Auto-Mute Mode' Disabledを実行します

これで、PulseAudioボリュームコントロールでスピーカーとヘッドフォンを切り替えることができます。

これらの手順を適用した後、 Sound Switcher Indicator を使用して、ヘッドフォンとスピーカーをすばやく切り替えることで、生活を楽にすることができます。

8
GoodGuyNick

hdajackretaskは、さまざまな入力、出力、または無効にジャックの機能を再割り当てするツールです。たとえば、マイクジャックを追加のヘッドフォンに変えたり、両方をライン出力にしてサラウンドレシーバーに接続してみませんか?

インストール alsa-tools-gui

Sudo apt-get update
Sudo apt-get install alsa-tools-gui

hdajackretaskを実行してから、ジャックの1つをオーバーライドするには:

  1. コーデックを選択してください
  2. そのピンの「オーバーライド」チェックボックスをクリックして、新しい目的の機能を選択します
  3. 「今すぐ適用」をクリックします

    注:ヘッドフォンジャックにオーディオを再ルーティングするハードウェアスイッチが組み込まれている場合、SOL(運が悪か​​った) 。 ただし、ヘッドフォンジャックにラインが差し込まれていることをOSが検出した場合、オーディオはほとんどの場合機械的に切り替えられません

ヘッドフォンとスピーカーの両方を同時にオーバーライドするのが最適であることがわかりました。


hdajackretaskヘッドフォンをスピーカーに切り替えるためのスクリーンショット:

enter image description here


「今すぐ適用」をクリックすると、シェルスクリプトが作成され、変更を加えて、実行するスーパーユーザーパスワードの入力を求められます。スクリプトは/tmpにも保存されます。これはコピーして、コマンドラインからSudoで後で実行できます。

enter image description here

コマンドライン実行

前述したように、hdajackretaskはスクリプトを作成します。script.shは、/tmpに、希望するジャック機能用の/tmp/hda-jack-retask-QW1EEZ/に似ています。

#!/bin/sh
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/hda-jack-retask-WFEIEZ/errors.log


このスクリプトをシステムの別の場所(/ tmp以外)にコピーします

cd /tmp/hda-jack-retask-QW1EEZ
cp script.sh ~username/speaker.sh

次にspeaker.shを編集します

cd ~username
nano speaker.sh

ファイルの先頭にkillall pulseaudio &行を追加します。 pulseaudioの実行中はジャック機能を変更できないため、これが必要です。デフォルトでは、pulseaudioは再生成されます。また、errors.logファイルへのパスを/tmpまたは任意の場所に変更します。

#!/bin/sh
killall pulseaudio &
echo "0x12 0x90a60140" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x14 0x90170150" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x17 0x40000000" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x18 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x19 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1a 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1b 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1d 0x40700001" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x1e 0x411111f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo "0x21 0x40f000f0" | tee /sys/class/sound/hwC0D0/user_pin_configs 2>>/tmp/errors.log
echo 1 | tee /sys/class/sound/hwC0D0/reconfig 2>>/tmp/errors.log


スクリプトを実行するには:

Sudo ./speaker.sh



alsa-tools-1.1.5/hdajackretask/README ドキュメントから:

Hdajackretaskのドキュメント

ほとんどのHDA Intelサウンドカードは、ある程度再タスク可能です。つまり、複数の用途に使用できます。このツールは、ジャックの再タスクを簡単にするGUIです。たとえば、マイクジャックを追加のヘッドフォンに変えたり、両方をライン出力にしてサラウンドレシーバーに接続してみませんか?

クイックスタート

コマンドラインからアプリケーション「hdajackretask」を起動します。上部のバーでコーデックを選択します。 1つしか持っていない人もいます。複数持っている場合は1つが「メイン」で、残りはおそらくHDMIコーデックです。

すべてのジャック(および他の入力/出力)は、「ピン構成」の下に表示されます。ジャックの1つをオーバーライドするには、そのピンの[オーバーライド]チェックボックスをクリックして、目的の機能を選択します。注:「ラインアウト(背面)」オーバーライドを選択した場合、「ラインアウト(前面)」オーバーライドも必要です。 「Line out(Center/LFE)」オーバーライドは、前の2つのオーバーライドでのみ機能します。

[今すぐ適用]をクリックして、新しい構成を試すことができます。新しい設定を起動時のデフォルトにするには、「起動オーバーライドをインストール」をクリックします。これらのいずれかを実行するには、root権限が必要なので、パスワードの入力を求められる可能性があります。

クイックエンド

あなたはめちゃくちゃにしましたか? [ブートオーバーライドの削除]ボタンをクリックします。プロセスが完了したら、コンピューターをシャットダウンし、しばらく待ってから再度オンにします。これで、開始した場所に戻るはずです。

うまくいきましたか?

もしそうなら、幸せになり、喜びを分かち合い、素敵なことをしてください!

うまくいかなかった場合は、次のことを試してみてください。

  • Alsamixerに移動して、新しいボリュームコントロールがあるかどうかを確認し、ミュートが解除されて適切な値に設定されているかどうかを確認します。

  • ドライバーは未接続のピンをシャットオフしない場合があります(接続されていない場合、なぜ心配ですか?)。しばらくの間、コンピューターを完全にオフにすることで、この問題を解決できる場合があります。

  • 以下の「model = auto」オプションを参照してください

これで解決しない場合は、ドライバーまたはハードウェアの制限に直面している可能性が高くなります。ドライバーのバグに遭遇する可能性があります(これまでに4台のヘッドフォンをテストした人はいないでしょう!)。もしそうなら、お気軽にalsa-develメーリングリストでそれらを報告してください:しかし、人手不足のため、これは非常に低い優先度で処理される可能性があります奇妙な構成をサポートするよりも重要です)。しかし、もしあなたがカーネルハッカーであり、他のものを台無しにせずに問題を解決するパッチを考え出すなら、それはマージされる可能性がかなり高いです。

カーネルドライバーではなくこのGUIアプリケーションに問題があると思われる場合は、お気軽にメールをお送りください(必要に応じて、パッチを含めてください!)。その場合は、diwic @ ubuntu.comに書き込みます。

オプション

  • 接続されていないピンを表示するBIOSは、実際に何かに接続されているコーデックのピンとそうでないピンをセットアップする役割を果たします。 BIOSにバグがあり、すべてのジャックが表示されない場合があります。 BIOSにジャックがないと言われている場合は、ランダムピンを有効にして、動作するかどうかを確認できます。

  • Model = autoを設定するいくつかのコーデック、特に古いものやカーネル3.8以下では、特定のモデルを使用するようにハードコードされているため、オーバーライドを気にしません。多くの場合、かなり新しいカーネルで、自動パーサーはこれらのコーデックでもうまく機能します。このボックスをチェックすると、自動パーサーを強制的に使用できます。ただし、場合によっては、明示的なモデルが理由で存在しますが、存在する場合はスタックしています。

  • 高度なオーバーライドこれは専門家専用です。意味のあるいくつかの定義済みの値だけでなく、各構成フィールドを個別に選択できます。ここでのほとんどの組み合わせは何らかの形で無効であるため、HD Audio仕様の「Configuration Default」セクションを読んで理解していない限り、これを混乱させないでください。 (この記事の執筆時点では、次の場所にあります: http://www.intel.com/content/dam/www/public/us/en/documents/product-specifications/high-definition- audio-specification.pdf

  • パーサーのヒントこれにより、解析に異なる動作を引き起こす特別な「ヒント」をドライバーに送信できます。ドライバのドキュメントを読んでいない限り、「デフォルト」設定のままにしてください。 (この記事の執筆時点では、こちらで入手できます: https://www.kernel.org/doc/Documentation/sound/alsa/HD-Audio.txt -「ヒント文字列」を参照" セクション。 )

4
stumblebee

KDEではこれを行うことができます:

システム設定->マルチメディア->オーディオとビデオの設定->オーディオハードウェア設定タブ>適切なサウンドカードを選択>コネクタの下にヘッドフォンとスピーカーのオプションが表示されます。

system settings

2

Gnome-Shell Extension Audio-Output-Switcher

最も簡単な方法は、インストールするだけです audio output switcher extension

または、gitで直接クローンを作成できます。

git clone https://github.com/adaxi/audio-output-switcher.git ~/.local/share/gnome-Shell/extensions/audio-output-switcher@anduchs

screenshot

この拡張機能は、現在選択されているパルスオーディオ出力デバイスを表示するステータスメニューに小さなエントリを追加します。それをクリックすると、使用可能なすべての出力デバイスを含むサブメニューが開き、使用する出力デバイスを選択できます。

1
Jastria Rahmat

PPAの追加を気にしない場合は、Sound Switcher Indicatorを使用できます。

これにより、システムトレイにインジケーターが表示され、クリックして入力または出力のオーディオソースを変更できます。詳細は http://yktoo.com/en/software/indicator-sound-switcher で読むことができます。

端末メソッド

ターミナルを使用してインストールするには、次を入力します。

Sudo add-apt-repository ppa:yktooo/ppa
Sudo apt-get update
Sudo apt-get install indicator-sound-switcher

GUIメソッド

GUIを使用してインストールするには、次の手順を実行します。

  1. Unity DashからSoftware&Updatesアプリを起動します。

  2. 「その他のソフトウェア」タブをクリックします。次に、次の新しいソースを追加します。

    deb http://ppa.launchpad.net/yktooo/ppa/ubuntu vivid main
    

    (「vivid」をUbuntuリリースに置き換えることを忘れないでください。サポートされるリリースは http://ppa.launchpad.net/yktooo/ppa/ubuntu/dists/ にリストされています)。

  3. Unity DashからUbuntu Software Centerを起動します。

  4. 「サウンド入力/出力セレクタインジケータ」を検索してインストールします。

注:上記のTerranceが提案したように、システムのヘッドフォンジャック内にハードウェアスイッチがある場合、このソリューションは機能しません。

0
PJ Singh