目标:在服务器上播放音乐,最好使用 cmus,使用 SSH 进行播放器控制。
第一次尝试:cmus
我cmus
在终端中运行,实际上没有任何反应。它只是加载(我猜)。试过cmus -vvvvv
- 也只是加载。试过这个和这个- 没有改变这个问题。但是:从计算机上的物理终端运行它可以工作!(既启动cmus,又成功播放音频)
第二次尝试:MOC
运行mocp
打开它,我也可以添加文件。尝试播放歌曲时,会出现以下消息:can't open audio: device or resource busy MOC
- 未找到可能的解决方案。
第三次尝试:mp3blaster
开始。我可以添加文件。它不播放:Failed to open sound device
尝试了谷歌的几个建议(非常过时),没有任何帮助。似乎在这方面帮助了许多其他人的是padsc mp3blaster
- 但同样,对我没有帮助。
我将 ALSA 与 PulseAudio 一起使用。音频本身工作正常。play
或者mplayer
两者都可以正常工作,但它们不提供库和播放列表。两者都可以通过 SSH 正常工作。
我真的不知道在这里做什么,因为 cmus 不打印任何东西并且. 我检查了一下mplayer
工作正常alsamixer
,没有任何东西被静音或禁用。只有一个声卡。
不想在这里提出一个广泛的建议我的问题,我只是添加了其他玩家,因为它可能有助于找到问题,但问题的目的是专注于cmus
开始工作。
我也尝试DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus cmus
过(在此处找到),结果相同。
编辑:要清楚:音乐在我通过 SSH 连接的机器上,我想从机器本地播放音乐,通过 SSH控制CLI 音乐播放器。对困惑感到抱歉。我不想通过 SSH 流式传输音频。我只想cmus
在 SSH 终端中使用来播放我正在连接的服务器上已经存在的音乐。
编辑:mplayer
也不再起作用了,它一直使用到我刚刚尝试过:
AO: [pulse] Init failed: Connection refused
Failed to initialize audio driver 'pulse'
[AO_ALSA] alsa-lib: pcm_hw.c:1602:(snd_pcm_hw_open) open '/dev/snd/pcmC0D0p' failed (-16): Device or resource busy
[AO_ALSA] alsa-lib: pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
[AO_ALSA] Playback open error: Device or resource busy
Failed to initialize audio driver 'alsa'
[AO SDL] Samplerate: 32000Hz Channels: Stereo Format s16le
[AO SDL] using aalib audio driver.
[AO SDL] Unable to open audio: No available audio device
Failed to initialize audio driver 'sdl:aalib'
Could not open/initialize audio device -> no sound.
Audio: no sound
Video: no video
同样适用于play
:
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
play FAIL formats: can't open output file `default': snd_pcm_open error: Device or resource busy
我也试过root
了,结果一样。但是:如果我以登录到 X 会话的用户身份运行(甚至通过 SSH),它可以工作。
我解决了这个问题,很明显我一直错过了这个问题。我必须允许其他用户(不是登录到运行 pulseaudio 守护进程的 X 会话的用户)访问 PA。
在 PA 守护程序运行的用户上:
然后在文件末尾添加:
然后,以您要播放音频的用户身份登录:
并将以下内容粘贴到文件中:
保存,重启pulseaudio:
pulseaudio -k
现在
cmus
,所有其他玩家都工作得很好。我使用
mpd
andncmpcpp
来达到同样的目的。在服务器上启动
mpd
,然后用于ncmpcpp -h hostname_of_jukebox
从网络上的任何其他计算机控制它。ssh
除了mpd
远程启动(如果需要,可以作为服务/守护程序自动启动)之外不需要。您也可以使用其他程序来控制
mpd
。