PulseAudioを使用して内蔵オーディオ出力とHDMIオーディオ出力の両方を有効にするには?

PulseAudioを使用して内蔵オーディオ出力とHDMIオーディオ出力の両方を有効にするには?

私は数日間この問題を探してきましたが、成功しなかった提案されたさまざまなソリューションを試しました。

基本的に、私はオーディオ(ヘッドフォンジャックまたは内蔵スピーカーに出力)とHDMI付きのラップトップを持っています。私はKDEを使ってDebian 7.5を実行しています。

以前はALSAのみが実行されており、HDMIからベルが鳴るようにSkypeを設定できましたが、通話にはヘッドフォンを使用できました。 Pulseを使って同様のことを達成したいと思います。

Skypeがまだ着信音を分離し、PulseAudioでオーディオを呼び出すかどうかはわかりませんが、Linux版のSkypeはイベントで任意のスクリプトを実行できるため、たとえばaplayHDMIポートで何かを再生するために使用できる場合はとても嬉しいです。 。ただし、何をしても常に1つの出力デバイスのみが表示されます(利用可能なもののみ)。

aplay -l:

****再生ハードウェアデバイス一覧****
カード0:PCH [HDA Intel PCH]、デバイス0:ALC269VBアナログ[ALC269VBアナログ]
  サブデバイス: 1/1
  サブデバイス#0:サブデバイス#0
カード 0: PCH [HDA Intel PCH], デバイス 3: HDMI 0 [HDMI 0]
  サブデバイス: 1/1
  サブデバイス#0:サブデバイス#0

aplay -L:

基本
    PulseAudioサウンドサーバーによる再生/録音
システムデフォルト:CARD = PCH
    HDA Intel PCH、ALC269VBシミュレーション
    基本オーディオデバイス
フロント: CARD=PCH,DEV=0
    HDA Intel PCH、ALC269VBシミュレーション
    フロントスピーカー
サラウンド40:カード= PCH、DEV = 0
    HDA Intel PCH、ALC269VBシミュレーション
    フロントおよびリアスピーカーによる4.0サラウンドサウンド出力
サラウンド41:カード= PCH、DEV = 0
    HDA Intel PCH、ALC269VBシミュレーション
    4.1サラウンドサウンドがフロント、リア、サブウーファーのスピーカーに出力されます。
サラウンド50:カード= PCH、DEV = 0
    HDA Intel PCH、ALC269VBシミュレーション
    フロント、センター、リアスピーカーによる5.0サラウンドサウンド出力
サラウンド51:カード= PCH、DEV = 0
    HDA Intel PCH、ALC269VBシミュレーション
    フロント、センター、リア、サブウーファースピーカーによる5.1サラウンドサウンド出力
サラウンド71:カード= PCH、DEV = 0
    HDA Intel PCH、ALC269VBシミュレーション
    フロント、センター、サイド、リア、サブウーファーによる7.1サラウンドサウンド出力
hdmi:カード=PCH,DEV=0
    HDA Intel PCH、HDMI 0
    HDMIオーディオ出力

HDMIデバイスを直接使用しようとすると、次のエラーが発生します。

$aplay -D hdmi 警告.wav
WAVE 'alert.wav'再生:符号付き16ビットLittle Endian、速度22050Hz、モノラル
aplay: set_params:1087: チャンネル数は使用できません。

pavucontrolの「設定」タブの下に、次のProfileオプションを含むドロップダウンメニューが表示されます。

アナログステレオデュプレックス
アナログステレオ出力
アナログステレオ(HDMI)出力+アナログステレオ入力
アナログステレオ(HDMI)出力
アナログステレオ入力
去る

私が知る限り、これらすべては(おそらく)期待どおりに動作します。 HDMIはオーディオ出力をHDMIポートとして指定し、他のものは内蔵サウンドカードに送信します。どちらを選択しても、[出力デバイス]タブには常に1つの出力デバイスしか表示されません。

/etc/pulse/default.pa使用する内蔵デバイスやHDMIデバイスを追加してみましたが、load-module module-alsa-sink device=hw:0,0効果load-module module-alsa-sink device=hw:0,3がないか、pulseaudioにプロファイルがまったく表示されないようです。

答え1

おかげで、うまく設定しました。ArchLinux Wikiのガイドライン:

pavucontrol / Configurationで1つの受信機(HDMI)を設定し、別の受信機(アナログ出力)を以下で指定しますdefault.pa

load-module module-alsa-sink device=hw:0,0
load-module module-combine-sink sink_name=combined
set-default-sink combined

たぶん最後の2行を逃したのでしょうか?

付録:HDMIにアナログ出力を追加することは可能ですが、逆にしたい場合はどうなりますか? (Pulseが「冗長」と呼ばれるアナログ入力を維持したいのですが…)残念ながらload-module module-alsa-sink device=hw:0,3いいえいいえPulseの「アナログステレオデュプレックス」構成にHDMI出力を追加する作業を進めています。パルスが始まりますが、HDMI出力はありません。

pacmd list-sinks両方のケースの出力を比較しました。を追加すると、device=hw:0,3オプションはポートなしとして表示されます。 pavucontrolでHDMI出力を選択するとポートが発生します。出力の詳細を見ながら調べた内容は次のとおりです。デバイス= HDMI:0

pavucontrol設定として「Analog Stereo Duplex」を選択し、次に追加しますdefault.pa

load-module module-alsa-sink device=hdmi:0
load-module module-combine-sink sink_name=combined
set-default-sink combined

奇跡的に動作します。マイク入力を維持し、pavucontrol /出力デバイスにはアナログ出力のすべてのオプションがあります。そしてHDMI用。

答え2

PipeWireは2023年にバージョン1.0に達し、ディストリビューションは徐々にPulseAudioをPipeWireに置き換えています。私は持っているという記事を書いた。PipeWireには複数のポートが同時に存在します。。簡単な要約は次のとおりです。

  1. 編集する9999-custom.conf次の場所にあるファイルalsa カード構成ファイルディレクトリ構造。

  2. このファイルのコメントを外し、必要に応じて調整してください。

     [Profile output:analog-stereo+output:hdmi-stereo+input:analog-stereo]
     description = Multiple ports (custom profile)
     output-mappings = analog-stereo hdmi-stereo
     input-mappings = analog-stereo
    
  3. PipeWireを再起動します。

  4. 展開と構成ファイルの場所によっては、展開がインストールされているパッケージを更新するたびに変更を上書きできます。

これらの変更により、HDMI出力とアナログ出力を同時に使用できます。これにより、次のツールを使いやすくなります。qpw図アプリケーションをすべての出力に即座にルーティングします。以下を生成することもできます。仮想デバイスこれは新しい基本出力デバイスになり、オーディオを複数の物理デバイスに転送します。

PipeWireは非常に柔軟で、さまざまな可能性とソリューションを提供します。以前のPulseAudioベースのソリューションは引き続き機能するはずですが、最新のPipewireモジュールへの移行

関連情報