在 SSH 会话期间访问pulseaudio接收器

在 SSH 会话期间访问pulseaudio接收器

我知道这个问题之前已经被问过多次,但我还没有找到适合我的解决方案。

我在通过 SSH 会话播放音频时遇到问题。有问题的设备是运行 Arch Linux ARM 并插入 USB 扬声器的 Raspberry Pi 3B+。我现在连接了一条 HDMI 电缆和一个键盘,以便更轻松地设置过程,但当我“时,它将无头使用”我完成了。

当我登录本地终端时,播放声音和录制麦克风都没有问题。pactl list short sinks列出了 HDMI 输出、3.5 毫米插孔和我的 USB 扬声器,并将后者设置为默认接收器,使用类似命令播放音频paplay完全没有问题。

但是,当我通过 SSH 访问 pi 时,pactl list short sinks仅显示一个虚拟音频接收器,它会悄悄丢弃我尝试播放的所有音频。如果我碰巧同时在本地登录,我会看到所有接收器,甚至可以播放音频!但是,一旦我在本地注销,来自 SSH 会话的音频就会再次停止工作。这是非常不方便的,因为前面提到过,稍后将使用无头的 pi。

互联网上的一些人表示,这是pulseaudio 强烈反对的系统模式有意义的少数情况之一。根据网上的建议,我执行了以下步骤:

  1. sudo systemctl --global mask pulseaudio.socket阻止用户空间服务器在登录时启动。
  2. 创建pulse没有主目录的用户。
  3. 将我自己添加到pulse-access群组中。
  4. 重启。
  5. 本地登录后,pactl list short sinks报告Connection failure: Connection refused,验证用户空间服务器确实尚未生成。
  6. 使用 启动pulseaudio 在系统模式下sudo pulseaudio --system -D

但这实际上让事情变得更糟。现在,pactl list short sinks仅列出 SSH 和本地会话中的虚拟接收器,使我无法从本地终端(即使是 root)播放音频。

我能做些什么?是否有可能包含有用信息的日志文件?谢谢!

答案1

脉冲用户需要位于音频(和蓝牙)组中才能使用 ALSA 和蓝牙设备。

usermod -aG audio pulse

相关内容