pulseaudioループバック出力をアンロードする方法を見つけようとしています。私はpulseaudioを使用してループバックミックスを作成し、マイクとシステムオーディオをキャプチャしてストリーミングします。このコードを含むスクリプトを起動するたびに:
pactl load-module module-null-sink sink_name=mix
pactl load-module module-loopback sink=mix
pactl load-module module-loopback sink=mix
avconv ...
pactl unload-module module-loopback
閉じた後、2つの出力デバイスが残ります。アンロードモジュールコマンドは記録コマンドを削除しますが、出力用のコマンドが見つかりません。
承認された回答:
モジュールをアンロードする適切な方法
パルスオーディオにロードされたモジュールのアンロードは、ロード時に指定されるモジュールのインデックス番号によって行われます:
pactl load-module module-null-sink sink_name=test
24
上記の例では、PulseaudioサーバーがインデックスID 24
でモジュールをロードしました 。このモジュールは、次のコマンドでアンロードできます:
pactl unload-module 24
スクリプトは、 pactl
の出力を解析する必要があります 。
モジュール番号がわからない場合は、次のコマンドを発行して番号とモジュール名を表示できます。
pactl list short modules
新しいバージョンでは、名前でアンロードすることもできます:
pactl unload-module <name>
迅速で汚い方法
pulseaudioが自動生成デーモンとして設定されている場合(これはデフォルトの動作であるはずです)、PulseAudioサーバーをリセットしてログイン後にロードされたすべてのモジュールをすばやくアンロードして、default.paで定義されたデフォルトモジュールをロードできます。コード> 実行することにより:
pulseaudio -k
これにより、スクリプトからすべてのモジュールが効果的にアンロードされ、出力用のデフォルトのシンクがロードされます。