web-dev-qa-db-ja.com

以前に実行されていたアプリケーションに適用されないPulseAudioのデフォルトソースの変更

Ubuntu 18.04では、ラップトップとヘッドセットを介してサウンド/マイクを定期的に切り替えています。ただし、一部のアプリケーションが実行されているときに行うのは面倒なので、pavucontrolを使用してこれを常に実行する必要はありません。

したがって、必要に応じてさまざまなpactlコマンドを使用して前後に切り替えるスクリプトを思いつきました。

マイク/ソースの場合、基本的に次の手順を実行します

pactl list short source-outputs

-> for each item I perform
pactl move-source-output <stream> <newSource>

pactl set-default-source <newSource>

現時点でオーディオを録音するアプリケーションは、move-source-outputコマンド。

ただし、set-default-sourceが有効にならない場合があります。私にとっては、pulseaudioはなんらかの方法でアプリケーションが以前に使用したソースを「記憶」しているように見え、特定のアプリケーションに対してそのソースを自動的に再度選択します。つまりaudacityはラップトップマイクを使用し、単純なarecordはヘッドセットマイクを使用しますが、デフォルトでは現在「ラップトップ」に設定されています。

しかし、私は完全に切り替えを行いたいと考えています。つまり、すべてのアプリケーションは、これから別の切り替えを行うまで、指定されたソースを使用する必要があります。

アプリケーションごとに以前に選択されたソース/ソース出力を覚えてスマートにしようとしないように、pulseaudioでこの動作を制御できる方法はありますか?

/ etc/Pulseと〜/ .Pulseのファイルも確認しましたが、関連していると思われるものは何も見つかりませんでした。デフォルトのモジュールの1つが原因の可能性がありますか?

2
centic

その答えは、pulseaudioのドキュメント https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/DefaultDevice/ にあります

モジュールrestore_deviceにはオプションmodule-stream-restoreがあり、これをfalseに設定できます。以下の/etc/Pulse/default.paを使用すると、望ましい動作が得られます。

load-module module-stream-restore restore_device=false
2
centic