アプリケーションのオーディオ出力を複数の再生デバイスにルーティング

アプリケーションのオーディオ出力を複数の再生デバイスにルーティング

オーディオを録音する必要があるアプリケーションがあります。この目的のために、pavucontrol録音ソフトウェアのオーディオ入力をオーディオ出力用のモニタに設定しました。今私の問題は、ほとんどの場合、出力を聞きたくないということです。このためにmodprobe snd-aloop。これはうまく機能しますが、時には録音中にライブオーディオストリームを聴きたい場合があります。つまり、常にサウンドアプリのオーディオ出力と録音アプリのオーディオ入力を変更する必要があります。これは本当に疲れています。また、これにより、録音アプリは特定のアプリだけでなく、私が聞くすべてを録音します。

私が見つけたこれ答えます。しかし、すべてのデバイスでサウンド出力をしたくないので、これは私が望むものではありません。ダミーループと私が選択した別の出力です。私のシステムはgnome3-shellを使用するArch Linuxです。私はこれが永久的なものを望んでいないので、すぐに変更できるソリューションが必要です。

ボーナスの質問:「リアルタイムリスニング」(アプリケーションのオーディオストリームに2番目のオーディオ出力を追加)を有効/無効にするショートカットがあればいいので、CLIコマンドが良いでしょう。

特に、次のオーディオパスを切り替えることができます。

[playback app] --> [dummy aloop] --> [monitor of aloop] --> [recording app]

そして

[playback app] --> [dummy aloop] --> [monitor of aloop] --> [recording app]
               \-> [headphones] (simultanously)

ベストアンサー1

まだPulseaudioをお使いの方は、ぜひご確認ください。Pulseaudioのモジュール、特にmodule-loopbackそしてmodule-null-sink。私の経験でsnd-aloopは、使用に少し苦しんでいますが、Pulseaudioは主にサウンドストリーミングに対処するため、Pulseaudioを使用する方がはるかに簡単です。

したがって、ユースケースが「ロードスピーカーを使用して他のコンテンツを処理し、時々アプリケーションを聞きながらバックグラウンドでアプリケーションの出力を録音する」場合は、適切に名前が付けられた空の受信機を作成して使用しますpavucontrol(Pulseaudioはそれを覚えています)。 、monitor録音するシンクのソース(必要に応じて録音アプリケーションのコマンドラインオプションを使用してPulseaudioアプリケーション名を設定します。)聞きたいときは、モニターソースとスピーカーレシーバーの間にループバック接続を設定します。または、このループバックを永久に作成し、必要に応じてミュート/ミュート解除します。

コマンドラインでpacmdまたはを使用して、これらすべてを試すことができます。pactl同じコマンドを使用してショートカットをスクリプト化することもできます。 Pulseaudio起動スクリプトを使用して永久に作成します。

だから何か

pactl load-module module-null-sink sink_name=recsink
pactl load-module module-loopback source=recsink.monitor sink=your_loadspeaker_sink

pactl list short sinksシンク名を表示するために使用されます。pactl helpそしてpacmd helpより多くの命令を受けてください。

おすすめ記事