パルスオーディオで2つのスピーカーを再マッピングして結合するときに発生する問題

パルスオーディオで2つのスピーカーを再マッピングして結合するときに発生する問題

私はBluetoothスピーカーのペアとラインであるスピーカーのペアを持っていますが、2つを同時に再生しようとしています。どちらのゲームも接続してプレイするのに問題はありませんでしたが、接続すると多くの問題が発生しました。また、Bluetoothスピーカーの設定が反転し、正しい位置に合わせて再マッピングしています。

私はpulseaudioを使ってスピーカーを反転させ、コンボスピーカーの使い方を説明するmodule-remap-sinkいくつかのスレッドを見ましたmodule-combine-sink。また、Bluetoothレイテンシーを考慮して有線スピーカーに遅延を追加したかったので、1つを追加してリスニングソースをmodule-null-sink有線受信機にループさせてこの遅延を得ました。私の4つのコマンドが以下にリストされています。

注:書式設定のために、ここでは長い行をバックスラッシュで区切ります。各コマンドは実際のコードの1行です。

pacmd load-module module-null-sink sink_name=delayed_speakers \
    sink_properties=device.description=DelayedSpeakers
pacmd load-module module-remap-sink sink_name=remapped_bluetooth \ 
    master=bluez_sink.EC_81_93_5A_66_BB.a2dp_sink channels=2 \
    master_channel_map=front-left,front-right channel_map=rear-right,rear-left remix=no 
pacmd load-module module-loopback latency_msec=80 source=delayed_speakers.monitor \
    sink=alsa_output.usb-Generic_USB_Audio-00.analog-stereo
pacmd load-module module-combine-sink slaves=remapped_bluetooth,delayed_speakers \ 
    sink_name=CombinedSink sink_properties=device.description=CombinedSpeakers \
    channel_map=front-left,front-right,rear-left,rear-right

この一連のコマンドは、bash端末で各コマンドを1つずつ実行するとうまく機能しますが、起動時に実行するように設定したいので、この行を含むbashスクリプトを作成しました。 bashスクリプトを実行すると、CombinedSpeakersリスナーはロードされません。これを調べるために、その行をコメントアウトし、各行delayed_speakersを個別にテストしましたremapped_bluetooth。 module-loopbackの前にmodule-remap-sinkを挿入すると、ハードワイヤードオーディオは出力(正しい再マッピングを含む)をdelayed_speakers受け取ります。remapped_bluetoothこのラインの順序を変更すると、Bluetoothスピーカーは両方のラインの出力を受信します。各モジュールのロード間に10秒のスリープモードを追加しようとしましたが、問題も解決されませんでした。以下にスクリプトを含めました。

#!/bin/bash
echo "Loading null sink";
pacmd load-module module-null-sink sink_name=delayed_speakers \
    sink_properties=device.description=DelayedSpeakers

sleep 10
echo "Loading remap sink"
pacmd load-module module-remap-sink sink_name=remapped_bluetooth \
    master=bluez_sink.EC_81_93_5A_66_BB.a2dp_sink channels=2 \
    master_channel_map=front-left,front-right channel_map=rear-right,rear-left \
    remix=no

sleep 10
echo "Loading delayed speakers loopback"
pacmd load-module module-loopback latency_msec=80 source=delayed_speakers.monitor \
    sink=alsa_output.usb-Generic_USB_Audio-00.analog-stereo

sleep 10
echo "Loading combined sink"
pacmd load-module module-combine-sink slaves=remapped_bluetooth,delayed_speakers \
    sink_name=CombinedSink sink_properties=device.description=CombinedSpeakers \
    channel_map=front-left,front-right,rear-left,rear-right

pulseaudioログを確認すると、systemctl --user status pulseaudio100以上のメッセージ pulseaudio[7998]: q overrun, queuing locallyと1つのメッセージが表示されます
No remapping configured, proceeding nonetheless!。その後、pulseaudioを使用してpulseaudioを再起動するまで、これ以上pactlコマンドを実行することはできません。pacmdsudo pkill -9 pulseaudio

編集:default.paファイルにモジュールローディングを追加できることを知っていますが、ファイルの実行時にBluetoothスピーカーが接続されず、モジュールローディングが失敗するため、私の場合は機能しません。

ベストアンサー1

私はこれを見つけました。その結果、失敗はシナリオではなく偶然の一致でした。module-remap-sinkプライマリ受信機で使用しようとするたびに不具合が発生します。この失敗は自動的に発生し、pacmdは正常に存在します。set-default新しくマッピングされた受信機を使用する場合、またはそれを含む結合された受信機を作成しようとした場合にのみ、パルスオーディオが応答しなくなります。

回避策:pacmd set-default-sink 0使用する前に使用してくださいmodule-remap-sink(該当する受信機が受信機0の場合は別のインデックスを使用してください)。問題の受信機が唯一の受信機である場合は、ダミー受信機を作成し、対応する受信機に切り替え、再pacmd load-module module-null-sinkマッピングを設定し、最後にダミー受信機を削除できます。

おすすめ記事