web-dev-qa-db-ja.com

ほとんどすべてのCLIミュージックプレーヤーが機能しない(SSH端末で)

目標:サーバーで音楽を再生します。できればcmusを使用し、プレーヤーの制御にSSHを使用します。

最初の試行:cmus
ターミナルでcmusを実行しましたが、文字通り何も起こりません。ロードするだけです(私は推測します)。試してみましたcmus -vvvvv-ロードするだけです。試しました this および this -問題に変更はありません。 しかし:コンピューター上の物理端末から実行することはできます! (cmusを開始し、オーディオを正常に再生する)

2回目の試行:MOC
mocpを実行すると開き、ファイルを追加することもできます。曲を再生しようとすると、次のメッセージが表示されます:can't open audio: device or resource busy MOC-考えられる解決策が見つかりません。

3回目の試行:mp3blaster
始まる。ファイルを追加できます。再生されません:Failed to open sound device
グーグルからのいくつかの提案(非常に時代遅れ)を試しましたが、何も役に立ちませんでした。これで他の多くの人を助けたように見えたのはpadsc mp3blaster-しかし、繰り返しますが、私には助けがありません。

私はPulseAudioでALSAを使用しています。オーディオ自体は正常に機能します。 playまたはmplayerはどちらも正常に機能しますが、ライブラリとプレイリストは提供していません。 どちらもSSH経由でも正常に動作します。

Cmusは何も印刷しないので、ここで何をすべきか本当にわかりません mplayerは正常に機能しますalsamixerを確認しましたが、ミュートまたは無効化されているものはありません。サウンドカードは1枚だけです。

ここで幅広い提案をするつもりはありません。問題を見つけるのに役立つ可能性があるため、他のプレーヤーを追加しましたが、質問はcmusを機能させることに焦点を当てることを目的としています。

私はもう試した DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus cmus too(found here )、同じ結果。

編集:クリアする:音楽はSSHで接続したマシンにあり、音楽をローカルで再生したいマシンから、SSH経由でCLIミュージックプレーヤーを制御します。混乱させて申し訳ありません。 SSH経由でオーディオをストリーミングしようとはしていません。 SSHターミナルでcmusを使用して、接続しているサーバーに既に存在する音楽を再生したいだけです。

編集: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経由でも)実行すると、動作します。

2
confetti

私はこの間ずっと見逃していたかなり明白な何かで問題を解決しました。 他のユーザー(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と他のすべてのプレーヤーは問題なく動作しています。

2
confetti

mpdncmpcppを使用して同じことを実現します。

サーバーでmpdを起動し、ncmpcpp -h hostname_of_jukeboxを使用して、ネットワーク上の他のコンピューターからサーバーを制御します。

sshをリモートで起動する以外に、mpdは必要ありません(必要に応じて、サービス/デーモンとして自動起動できます)。

他のプログラムを使用してmpdを制御することもできます。

1
Mio Rin