目標:サーバーで音楽を再生します。できれば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経由でも)実行すると、動作します。
私はこの間ずっと見逃していたかなり明白な何かで問題を解決しました。 他のユーザー(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
と他のすべてのプレーヤーは問題なく動作しています。
mpd
とncmpcpp
を使用して同じことを実現します。
サーバーでmpd
を起動し、ncmpcpp -h hostname_of_jukebox
を使用して、ネットワーク上の他のコンピューターからサーバーを制御します。
ssh
をリモートで起動する以外に、mpd
は必要ありません(必要に応じて、サービス/デーモンとして自動起動できます)。
他のプログラムを使用してmpd
を制御することもできます。