尝试将音频从mpd发送到pulseaudio时“无法打开音频输出”错误

Modified on: Mon, 25 Jun 2018 11:02:23 +0800

当我尝试通过pulseaudio播放mpd时,mpd.log报告:

  

pulse_output:无法启用“Pink ROCKI”[pulse]:pa_context_connect()失败:拒绝连接

  • 脉冲似乎工作正常,因为pacmd list-sinks显示我的所有脉冲接收器,meb浏览器音频通过默认接收器播放正常,而VLC可以通过其中任何一个播放声音。
  • 如果我通过alsa而不是pulse 发送输出,
  • mpd工作正常
  • mpd和pulseaudio都在我的帐户下运行(fred)。
  • fred,mpd和pulseaudio都是脉冲,脉冲访问和音频组的成员。
  • 我甚至尝试过不同版本的pulseaudio:Ubuntu 14.04附带的4.0版,实验RAOP2使用脉冲4.0构建,实验RAOP2使用脉冲5.0构建。 mpd将无法与其中任何一个一起使用。

我的mpd.conf文件是vanilla;脉冲部分是通用的:

    audio_output { 
    type "pulse" 
    name "General Pulse" 
    }

虽然正如下面的laugeo所暗示的那样,我也尝试通过名称指定一个单独的接收器:

audio_output {
    type        "pulse"
    name        "ROCKI"
    sink        "raop_output.ASAP1826T.local"
}

和索引#:

audio_output {
    type        "pulse"
    name        "ROCKI"
    sink        "4"
}

接下来我应该尝试什么?可以将pulseaudio配置为作为系统服务帮助运行吗?

这是在Ubuntu 14.04,pulseaudio 4.0(和5.0),音乐播放器守护进程0.18.7

更新:我找到了这个博客博主Louiz似乎有解决了相同(或非常相似)的问题:

  MPD显然试图产生一个新的pulseaudio过程,就像我自己的过程一样
  用户,它失败,因为它已经在运行。我不能
  明白为什么它不能只使用现有的pulseaudio实例,
  而不是试图产生一个新的。
  
  

我理解感谢这篇文章。< / p>
  
  

MPD无法找到已经运行的pulseaudio实例,因为
  环境变量XDG_RUNTIME_DIR未设置,而且它在哪里
  pulseaudio存储其文件(套接字,进程pid等)。

我尝试了他的解决方案:

  

创建新文件/etc/systemd/system/mpd.service.d/fixenv.conf
  含有:

  
  

[服务]环境= XDG_RUNTIME_DIR = / run / user / 1000

  
  

(用您的用户的UNIX ID替换1000。)

我重新启动并且XDG_RUNTIME_DIR设置正确,并且脉冲将其pid文件放在/ run / user / 1000 / pulse /目录中(我的用户ID为1000),但我仍然从mpd得到相同的错误:

  

pulse_output:无法启用“ROCKI”[pulse]:pa_context_connect()失败:拒绝连接

我每天都在学习更多关于linux的知识,但是套接字,进程pid,systemd(不是Ubuntu应该使用upstart?systemd似乎正在运行并启动东西)等等,现在都高于我的工资等级 - 我迷失在树林里。

最佳答案

最后,优于pulseaudio守护进程模式,最佳解决方案是那里:它是关于运行的mpd作为你自己(而不是mpd用户)所以你没有问题使用你自己的会话pulseaudio。

一个不同的答案,但经过测试和工作:
 将pulseaudio配置为以“守护程序模式”运行,而不是标准的“用户模式”

  • 在终端中,运行
    sudo gedit /etc/init/pulseaudio.conf
    然后取消注释第20行,删除#得到:
    start on runlevel [2345]
    保存并退出gedit。
  • 在终端中运行以下两个命令:
    sudo usermod -aG pulse,pulse-access mpd
    sudo usermod -aG pulse,pulse-access your-login
    在第2个命令中,替换“your-login”

现在重启:希望它会起作用。

注意:有关信息,此页面列出了原因为什么你必须避免使用pulseaudio守护进程模式,但我发现它在单个用户PC上没问题(特别是我看到没有比用户模式更多的CPU /内存使用率)。

作者:,laugeo

相关问答

添加新评论