web-dev-qa-db-ja.com

2つ以上の出力/デバイスでサウンドを再生する

これは非常にシンプルなコンセプトだと思います。サウンドカードとBluetoothヘッドフォンを1組持っています。サウンドカードとBluetoothヘッドフォンの両方でオーディオを再生したい。

Windowsにはチェックボックスがあり、出力を「チェック」して有効/無効にすることができますが、Ubuntuにはラジオセレクターと同等の機能があるようです(一度に1つしか選択できません)。

ボーナス質問:同様の注意として、サウンドカードに5つのアナログ出力チャンネルがあります(デジタルおよびHDMIオーディオに加えて)-それらの各ポートから出力されるものを判別できるようにしたい(たとえば、「フロント5つすべてのスピーカー」または「フロント」、「センター」、「バック」など)。

前もって感謝します!

78
Nathan J.B.

paprefsを使用すると、接続されているすべてのサウンドカード/デバイスへの同時出力を可能にする仮想出力デバイスにアクセスできます。

Sudo apt install paprefs 

次に、ターミナルでpaprefsを実行し、[同時出力]タブを選択して、[すべてのローカルサウンドカードで同時出力の仮想出力を追加する]をオンにします。

paprefs

同時出力用に追加で作成されたオーディオ出力デバイスは、pulseaudioサウンド設定メニューの"Output"タブで選択できます。

enter image description here

この例では、HDMIデバイスについて表示されていますが、Bluetoothデバイスが認識されるとすぐに、同時出力も可能になります。

変更を有効にするには、セッションにログアウトして再度ログインするか、ターミナルでpulseaudio -kを実行して、pulseaudioの再起動が必要になる場合があります。

84
Takkat

Ubuntu

このソリューション(4年前から)がUbuntu 14.04 LTSでまだ機能することを確認しました。

インストール

ターミナルを開いてSudo apt-get install paprefsと入力し、上の図のとおりにタブに移動して、オプションを選択します。

最初の実行

それから;ターミナルに残り、pulseaudio -kと入力してpulseaudioを強制終了して再起動します。

次に、サウンド設定に移動すると、複数のサウンドデバイスに出力するオプションが表示されます。

Paprefsを書いた人の小道具は、追加のインストールを必要とせずに、Ubuntuに含まれることが実際に見たい素晴らしいソフトウェアです。

Apple Mac OS X

付属のソフトウェアを使用して同様のソリューションを利用できます。pulseaudioの優れた点は、両方の出力からサウンドが完全に同期しているように見えるため、ラグも調整する必要があることです。印象的;そうしないと、ある出力と別の出力からわずかに遅れたバージョンが聞こえます。

21
aaricus

Takkatからの優れた答えを補完するために、新しいデバイスに付けられたデフォルト名が長すぎるため、サウンド設定ダイアログが歪んでいることに気付きました。その名前を短縮するために、さらに次のコマンドを実行する必要がありました。

gconftool --set --type string /system/pulseaudio/modules/combine/args0 sink_properties=device.description=Combined

Sound settings with combined device

5
Paulo

システムを再起動しましたが、Debian 8.7でTakkatの提案を箱から出せませんでした。 paprefsのインストールに関するTakkatの提案を完了したと思います。 Arch Linuxに基づいて動作するTakkatの答えの拡張 wiki アナログ入力を保持し、Pulseが「デュプレックス」を呼び出す

# /etc/Pulse/default.pa
# http://unix.stackexchange.com/a/180374/16920
load-module module-alsa-sink device=hdmi:0
load-module module-combine-sink sink_name=combined
set-default-sink combined

その後、pulseaudioを再起動します。

pulseaudio -k

Kubuntu 18.04では、Plasma 5.12 paprefsは必要ありません。同様の設定が既にあります。

enter image description here

「同時出力」と呼ばれる新しい出力オプションが、再起動後に使用可能になります。

enter image description here

またはpavucontrolで:

enter image description here


18.10では、Plasma 5.13.5で「同時出力」オプションが削除されたため、aprefsが必要です。

2
user47206

LeonidMewが18.04について尋ねていたので(私は18.04.2を使用しています)、ここに私のバージョンがあります。

GUI paprefsは、両方のhdmiではなく、1つのHDMIと1つのアナログ出力を組み合わせようとしました。そのため、Léo Léopold Hertz 준영の説明に従ってファイルを編集する必要がありました

$ gedit /etc/Pulse/default.pa
# then after changes 
$ pulseaudio -k

これらのメソッドは両方とも独自に機能するため、1つを選択します(ファイルの先頭に追加するようにしてください.failの直後に配置します!それ以外の場合は機能しません)。

方法A

load-module module-alsa-sink device=hw:1,3 sink_name=hdmi
load-module module-alsa-sink device=hw:1,7 sink_name=hdmi2
load-module module-combine-sink sink_name=combined slaves=hdmi,hdmi2
set-default-sink hdmi-combined

方法B

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

参照

方法A

参考のため、hw:0,0aplay -lから取得されます

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

方法B

そして1:3

$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '
    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
        alsa.subdevice = "0"
        alsa.device = "1"
    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
        alsa.subdevice = "0"
        alsa.device = "7"

「サウンド設定」で、他のHDMIを出力として設定してから、

$ pacmd list-sinks | grep -e 'name:' -e 'alsa.device ' -e 'alsa.subdevice '
    name: <alsa_output.pci-0000_00_1b.0.iec958-stereo>
        alsa.subdevice = "0"
        alsa.device = "1"
    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>
        alsa.subdevice = "0"
        alsa.device = "3"

確認するために、私は走った

$ aplay -D plughw:1,3 /usr/share/sounds/alsa/Front_Right.wav
$ aplay -D plughw:1,7 /usr/share/sounds/alsa/Front_Right.wav

それぞれのモニターで鳴りました。

0
orangenarwhals