コマンドラインでパルスオーディオ出力デバイスを強力に切り替えるには?

コマンドラインでパルスオーディオ出力デバイスを強力に切り替えるには?

Ubuntuや他のディストリビューションには、オーディオ出力デバイスを切り替えるグラフィックがあります。同じことをするためにコマンドラインツールを書いてみましたが、必ずしも動作しません。

受信機0に切り替えるために実行されているタスクは次のとおりです。

pacmd set-default-sink 0

私の考えでは、これはすべて行われるべきだと思います。新しい入力はレシーバ 0 に移動します。次に、pacmd list-sink-inputs現在実行されている操作に基づいて、既存の各入力に対して次の操作を行います。

pacmd move-sink-input <input_id> 0

しかし、しばしば動作しません。私はしばしば受信機を切り替えてから、いくつかのアプリケーションでいくつかのオーディオを再生しましたが、それでも以前の受信機に接続されていました。私がここで何を見逃しているのでしょうか?これをどのように強力に実行できますか?

答え1

~からこのブログ投稿:

PulseAudio自体には、pacmdとpactlという2つの基本的なコマンドラインツールが付属しています。前者はset-default-sinkコマンドを提供しますが、期待どおりに機能しません。少なくとも私のシステムでは、PulseAudioデーモンが接続されているすべてのアプリケーションに対して継続的な設定を維持していることがわかりました。これは、デフォルトの受信者がデーモンがまだ確認していないアプリケーションにのみ使用されることを意味します。

つまり、このブロガーはあなたと同じ問題を抱えていました。

  • デフォルトの受信機を切り替えると、以前に使用されていなかったプログラムにのみ影響します
  • 既存の入力を移動するプログラムは、サウンドカードの実際の活動にのみ影響します。
  • 永久設定を繰り返して新しいカードを再割り当てするには、ツールが必要です。

したがって、このブロガーはpaswitchこれを行うためのコマンドラインツールを作成しました。 ここではGit形式のソースコードを見つけることができます。

取付ける:

  • libpulse-devPulseaudio開発ライブラリパッケージがインストールされていることを確認してください。gccコンパイラとユーティリティも必要ですmake
  • git clone https://www.tablix.org/~avian/git/paswitch.gitダウンロードソースコードを実行します。
  • cd paswitchコマンドで作成されたディレクトリに移動git cloneしますmake
  • paswitchエラーなしで完了したら、ディレクトリにバイナリファイルが必要です。ディレクトリにコピーします/usr/local/bin/
  • README使用方法の例については、ディレクトリ内のファイルを読んでください。

restore_device=false別のオプションは、次のmodule-stream-restore行にオプションを追加して、PulseAudioデーモンにアプリケーションのリスナー設定を維持しないように指示することです/etc/pulse/default.pa

load-module module-stream-restore restore_device=false

これを行い、PulseAudioを再起動した後にデフォルトの受信機を切り替えると、すべての新しいサウンドアプリケーションがデフォルトでそれを使用します。

ただし、状況は使用するデスクトップ環境によって異なる場合があります。 Debian 9で永続性を無効にすると、KDEは別の厄介な動作を示し、最終的にデフォルトの動作に戻りました。私の記憶が正しい場合は、KDEシステム設定 - >マルチメディア - >オーディオとビデオ - >デバイス設定リストにログインするたびに、オーディオデバイスの新しいコピーが作成されます。

関連情報