当 ncmpcpp 同时播放时,mplayer 无法播放来自 cron 的音频

当 ncmpcpp 同时播放时,mplayer 无法播放来自 cron 的音频

我已经设置了一个脚本,该脚本执行 mplayer 命令,以便在 crontab 中播放音频。它将在特定时间执行,但当 ncmpcpp(mpd 的前端,又名音乐播放器守护程序)播放音乐时,此脚本无法播放音频。但是当我从终端执行此脚本时,它可以播放音频,如下所示:

sh bin/alarm.sh   

我尝试从 crontab 或脚本获取输出,但无济于事。我猜 ncmpcpp 或 mplayer 中的某些设置有误,或者 mpd 使用与 crontab 守护进程相同的守护进程。

  • 无论如何,我找不到解决方案。如果你知道,请帮助我。

答案1

问题似乎是 mpd 默认在用户 mpd 下运行(作为系统守护进程),因此无法加入您的会话的 pulseaudio 混音器,因此它会通过 alsa 甚至 oss 占用声卡输出。在我的回答中,我假设您已登录,并且 crontab 是您的,而不是系统 crontab。

多普勒

根据您的优先级,您有很多选择,这些选择大多围绕着教 mpd 不要独占声音,而是使用 pulseaudio。请参阅mpd 维基

播放器

ao=pulse您可以通过放置一行来将 mplayer 配置为默认使用 pulseaudio ~/.mplayer/config,但 pulseaudio 应该可以通过其 alsa 插件很好地接收它。

答案2

在您的 crontab 中,请将其添加到命令部分

export DISPLAY=:0.0 && sh /bin/alarm.sh

export DISPLAY=:0.0运行图形应用程序所必需的。

答案3

当使用例如play(来自sox包)时,需要导出以下信息:

export DISPLAY=:0
export XAUTHORITY=/home/YOURUSERNAME/.Xauthority

答案4

相关内容