管道系统声音到另一台计算机

Bij*_*joy 5 audio linux unix alsa

我的电脑(Cent-OS 5.5)中没有扬声器,但我的电脑(Cent-OS 5.5)旁边有一个连接到电脑的立体声扬声器。两台电脑都联网。有什么方法可以将我的系统声音通过管道传送到该计算机扬声器吗?

use*_*686 9

PulseAudio可以通过网络使用。

我通常建议使用 Avahi 启用自动发现(除非您非常害怕 IP 多播) ——优点是您将能够使用本地网络音频设备,而不必对一个特定的服务器进行硬编码。尽管这不适用于@Bijoy 的问题,但它可能适用于许多其他读者。

关于文件路径的注意事项:

  • 较新的 PulseAudio 版本?v2.99.1 将用户配置放入 .auth ~/.config/pulse/default.pacookie 中~/.config/pulse/cookie

  • 旧版本?v2.98分别使用~/.pulse/default.pa~/.pulse-cookie。如果您有这么旧的版本,请在阅读说明时记住这一点。

方法 1,使用 Avahi与任意数量的服务器(包括本地设备)自动发现

  1. 在两台计算机上,启动 Avahi 守护进程。

  2. 在计算机 B 上,启用传入网络访问:

    • 通过paprefs? 网络服务器? 启用对本地设备的网络访问

    • 或者,通过编辑~/.config/pulse/default.pa

      .include /etc/pulse/default.pa
      
      load-module module-native-protocol-tcp
      load-module module-zeroconf-publish
      
      Run Code Online (Sandbox Code Playgroud)

      不要忘记重新启动pulseaudio以使其重新读取配置(或使用 手动加载两个模块pactl load-module)。

  3. 在计算机 A 上,启用发现:

    • 通过paprefs? 网络访问? 使可发现的 PulseAudio 设备可用

    • 或者,通过编辑~/.config/pulse/default.pa

      .include /etc/pulse/default.pa
      
      load-module module-zeroconf-discover
      
      Run Code Online (Sandbox Code Playgroud)

      不要忘记重新启动pulseaudio以使其重新读取配置(或使用 手动加载模块pactl load-module)。

  4. 在计算机 A 上,您现在应该看到本地设备旁边列出了 B 的声音设备(例如,pavucontrol在 GNOME 的声音设置中或中)。

方法二、手动配置一台服务器:

  1. 在计算机 B 上,启用传入网络访问:

    • 通过paprefs? 网络服务器? 启用对本地设备的网络访问

    • 或者,通过编辑~/.config/pulse/default.pa

      .include /etc/pulse/default.pa
      
      load-module module-native-protocol-tcp
      
      Run Code Online (Sandbox Code Playgroud)

      不要忘记重新启动pulseaudio以使其重新读取配置(或使用 手动加载模块pactl load-module)。

  2. ~/.config/pulse/cookie从计算机 B复制到计算机 A。

  3. 在计算机 A 上,告诉 PulseAudio 使用远程服务器:

    • 编辑~/.profile或等效的启动脚本以添加:

      export PULSE_SERVER="tcp:computer-b-address"
      
      test "$DISPLAY" && pax11publish -e || true
      
      Run Code Online (Sandbox Code Playgroud)
    • 注销,重新登录,确保至少有一个 printenv PULSE_SERVERpax11publish显示计算机 B 的地址。

  4. 在计算机 A 上,您现在应该看到列出的 B 的声音设备(例如pavucontrol在 GNOME 的声音设置中或中)。


请注意本机不支持 PulseAudio 的程序:那些不支持的程序可以配置为通过/etc/asound.conf. 以下示例取自Arch Linux 中的pulseaudio-alsa包:

pcm.!default {
  type pulse
  fallback "sysdefault"
  hint {
    show on
    description "Default ALSA Output (currently PulseAudio Sound Server)"
  }
}
ctl.!default {
  type pulse
  fallback "sysdefault"
}
Run Code Online (Sandbox Code Playgroud)