
Linux入門者:Jackを使用するには? Linuxサウンドはどのように機能しますか?
ALSAまたはJACKを介してサウンドを出力しようとしているアプリケーションがありますが、音はまったく聞こえません。
以下はいくつかあります。記事これにより、ALSAはLinux用のカーネルモードサウンドドライバであり、libasoundはアプリケーションプログラミングインタフェース用のユーザースペースライブラリであることがわかりました。
PulseAudioとJACKは、複数のアプリケーションが複数のハードウェアとアプリケーションを制御できるようにするオーディオサーバー/ルーターです。
これはいいです。記事ルーティング方法all-applications -> jack -> PulseAudi -> ALSA
。簡単に見えますが、なぜそれほど多くのレイヤーが必要なのか理解できません。ただジャックにアルサに行くのはどうですか?
- alsaを使用してクライアントアプリケーションを一覧表示するには? (何も聞こえない理由を見つけなければなりません)
- jackをalsaに直接ルーティングする方法は?それとも、以前の投稿で指摘したようにPulseAudio経由でルーティングする必要がありますか?
- このタスクがすべて完了したら、ハイジャックしたいすべてのクライアントアプリケーションに関する情報をどのように一覧表示しますか?
答え1
私はあなたが混乱していることを理解しています。私もそこに行きました:)
JACKと同様に、PulseAudioもある意味ではサウンドサーバーですが、目標が異なることをまず理解してみましょう。 JACKはプロのオーディオユーザー/音楽家を対象としていますが、PAは使いやすいように設計されています。
オーディオパスはあなたの質問と少し異なります。
all-applications->PA to jack sink->jack audio server -> libasound and ALSA.
このように、PA(通常はデフォルトのオーディオ出力(受信機))はサウンドをジャックに送信します。上記はジャックのジャンクションボックスにあります(シンクとソースモジュールがロードされた後load-module
)。
システムエントリはALSAバックエンドで提供されますが、PA JACKシンクとソースはPA to Jackモジュールによって提供されます。
特定のUbuntuバージョンを実行している場合は、qjackctl - >設定 - >「オプション」タブ - >起動後に実行に以下を追加できます。
pactl load-module module-jack-sink channels=2; pactl load-module module-jack-source channels=2; pactl set-default-sink jack_out; pactl set-default-source jack_in
上記は「PAジャック」モジュール(チャンネルL + Rごとに2つ)をロードし、すべてのアプリケーションのデフォルトの再生デバイスをPAジャックシンクモジュールとして設定する必要があります。さらに、ライン/マイク入力をPAジャックソース入力に接続するため、基本入力デバイス(Skypeなど)へのアクセスを必要とするアプリケーションはPAジャックソースモジュールを介してそれを取得できます。
アプリケーションがALSAにサウンドを出力する場合は、基本デバイス(つまりpulseaudio経由)を介して再生する必要があります。これは質問を提起します。ジャックは本当に必要ですか?それはどんなアプリですか?
とにかく、アプリケーションがジャックをサポートしている場合は、qjackctlのパッチパネルに表示する必要があり、必要に応じてオーディオパスに接続できます。