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-dev
Pulseaudio開発ライブラリパッケージがインストールされていることを確認してください。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システム設定 - >マルチメディア - >オーディオとビデオ - >デバイス設定リストにログインするたびに、オーディオデバイスの新しいコピーが作成されます。