幾乎每個 CLI 音樂播放器都不起作用(在 SSH 終端中)
目標:在伺服器上播放音樂,最好使用 cmus,使用 SSH 進行播放器控制。
第一次嘗試:
cmus
我
cmus
在終端中執行,實際上沒有任何反應。它只是載入(我猜)。試過cmus -vvvvv
- 也只是載入。試過這個和這個- 沒有改變這個問題。**但是:**從電腦上的物理終端執行它可以工作!(既啟動cmus,又成功播放音頻)第二次嘗試:
MOC
執行
mocp
打開它,我也可以添加文件。嘗試播放歌曲時,會出現以下消息:can't open audio: device or resource busy MOC
- 未找到可能的解決方案。第三次嘗試:
mp3blaster
開始。我可以添加文件。它不播放:
Failed to open sound device
嘗試了Google的幾個建議(非常過時),沒有任何幫助。似乎在這方面幫助了許多其他人的是
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 守護程序執行的使用者上:
# create pulse config dir in $HOME if it doesn't exist yet mkdir .pulse # copy the default PA config file cp /etc/pulse/default.pa .pulse/default.pa # edit the file nano .pulse/default.pa
然後在文件末尾添加:
# make PA accessible by all users load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/acpulsesocket
然後,以您要播放音頻的使用者身份登錄:
# create pulse config dir in $HOME of the controlling user mkdir .pulse # create client configuration file nano .pulse/client.conf
並將以下內容粘貼到文件中:
default-server = unix:/tmp/acpulsesocket
保存,重啟pulseaudio:
pulseaudio -k
現在
cmus
,所有其他玩家都工作得很好。