GNU/Linux >> Belajar Linux >  >> Ubuntu

Ubuntu 14.04 Dan Memutar Lagu Dari Cron?

Saya baru saja memutakhirkan komputer saya ke Ubuntu 14.04.

Setelah pemutakhiran, sistem tidak lagi memutar beberapa lagu yang saya mainkan melalui crontab.

Garis crontab terlihat seperti ini:

0 9   *   *   1-5       /usr/bin/mpg123 -q //eadn-wc01-5196795.nxedge.io/home/user/Music/song.mp3

Saya tidak mendapatkan kesalahan dari cron saat menjalankan perintah. Jika saya menjalankan perintah secara manual melalui SSH, lagu berhasil diputar.

Saya menambahkan perintah di crontab dengan 'env' untuk lebih memahami lingkungan di mana cron menjalankan pekerjaan:

0 9   *   *   1-5       env; /usr/bin/mpg123 //eadn-wc01-5196795.nxedge.io/home/user/Music/song.mp3

Ini menghasilkan output berikut:

HOME=/home/user
LOGNAME=user
PATH=/usr/bin:/bin
LANG=en_US.UTF-8
SHELL=/bin/sh
PWD=/home/user
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
    version 1.16.0; written and copyright by Michael Hipp and others
    free software (LGPL) without any warranty but with best wishes

Directory: /home/user/Music/
Playing MPEG stream 1 of 1: song.mp3 ...

MPEG 1.0 layer III, 320 kbit/s, 44100 Hz stereo
Comment:  00000000 00000210 00000AA0 000000000058C5D0 00000000 00506FD7 00000000 00000000 00000000 00000000 00000000 00000000

[2:11] Decoding of song.mp3 finished

Untuk membuat shell interaktif dari koneksi ssh saya lebih seperti yang dijalankan cron di bawah, saya menghapus semua kecuali vaiable lingkungan yang ditentukan:

for a in `env | awk -F= '{ print $1 }' | grep -v "HOME\|LOGNAME\|PATH\|LANG\|SHELL\|PWD" | xargs`; do unset $a; done

Dan setelah itu ubah copy+paste dari crontab tidak lagi menghasilkan suara apapun. Program tampaknya memutar file tersebut:

$ /usr/bin/mpg123 //eadn-wc01-5196795.nxedge.io/home/user/Music/song.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layers 1, 2 and 3
        version 1.16.0; written and copyright by Michael Hipp and others
        free software (LGPL) without any warranty but with best wishes

Directory: /home/user/Music/
Playing MPEG stream 1 of 1: song.mp3 ...

MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo

[2:51] Decoding of song.mp3 finished.

Membuat saya percaya bahwa suara itu hanya dikeluarkan ke perangkat yang salah.

Beralih ke pemutaran, berikut ini tidak menghasilkan suara:

$ aplay /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

Namun menentukan perangkat ini tidak memutar melalui HDMI sebagaimana dimaksud:

$ aplay -D plughw:CARD=NVidia,DEV=3 /usr/share/sounds/alsa/Front_Center.wav
Playing WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Mono

Bagaimana cara mengatur perangkat itu sebagai default sistem?
(Seperti yang terjadi setiap kali saya memiliki lingkungan yang lebih kaya.)

Atau, bagaimana saya bisa memaksa mgp123 untuk menggunakan perangkat yang benar?
Apakah perangkat ALSA plughw:CARD=NVidia,DEV=3 berkorelasi dengan perangkat di /dev?

mpg123 akan memungkinkan Anda menentukan perangkat tertentu seperti:

   -a dev, --audiodevice dev
          Specify the audio device to use.  The default is system-dependent (usually /dev/audio or /dev/dsp).  Use this option if  you  have  multiple  audio
          devices and the default is not what you want.

Perangkat plughw di juga:

$ aplay -L | grep plughw -A2
plughw:CARD=NVidia,DEV=0
    HDA NVidia, ALC889A Analog
    Hardware device with all software conversions
plughw:CARD=NVidia,DEV=1
    HDA NVidia, ALC889A Digital
    Hardware device with all software conversions
plughw:CARD=NVidia,DEV=3
    HDA NVidia, HDMI 0
    Hardware device with all software conversions

Sepertinya cocok dengan pcmC0D?p-devices di /dev/snd:

$ ls /dev/snd/ | egrep [013]p
pcmC0D0p
pcmC0D1p
pcmC0D3p

Tetapi menggunakannya sepertinya tidak membantu mpg123:

$ /usr/bin/mpg123 -q -a /dev/snd/pcmC0D3p //eadn-wc01-5196795.nxedge.io/home/user/Music/song.mp3
[oss.c:129] error: Can't reset audio!
[mpg123.c:690] error: ...in decoding next frame: Unable to set up output format! (code 1)

Saya tidak begitu mengerti apa itu ALSA dan/atau PulseAudio sehubungan dengan ini.

Terkait:Bagaimana cara selalu menampilkan (atau menyembunyikan otomatis) item menu di Unity?

Sepertinya tidak ada yang berfungsi di lingkungan terbatas:

$ pactl list cards
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
$ alsamixer
Error opening terminal: unknown.

Kedua perintah bekerja dengan set variabel lingkungan "normal".

Saya mengunduh dan menjalankan alsa-info.sh, pertama dengan lingkungan "normal":

http://www.alsa-project.org/db/?f=e2be8ceb9ef289ff9ef95557396dd82b88f337e0

Ketika saya mencoba menjalankannya dengan sebagian besar variabel lingkungan tidak disetel, saya mendapatkan kesalahan.

Setelah menyetel:

export TERM=xterm

Saya menjalankan skrip lagi. Hasil di sini:

http://www.alsa-project.org/db/?f=67fdd80bd55c76cd6dd30c981bf02fe66ba3d9d6

EDIT:

Penyelidikan lebih lanjut dari variabel lingkungan yang tidak disetel menunjukkan bahwa saya hanya perlu menghapus XDG_RUNTIME_DIR untuk menghentikan pemutaran.

$ unset XDG_RUNTIME_DIR

EDIT2:

Jika saya mengabaikan mgp123 untuk cvlc saya mendapatkan suara saat bermain melalui crontab seperti:

 0 9  *   *    1-5      /usr/bin/cvlc -q --alsa-audio-device="hw:0,3" --play-and-exit //eadn-wc01-5196795.nxedge.io/home/user/Music/song.mp3 2> /dev/null

Jawaban yang Diterima:

Di As you use ssh connection , coba tambahkan pengguna Anda di grup “audio” :
sudo usermod -aG audio username
reboot dan uji apakah alsamixer ok , sehingga Anda dapat mengatur volume:Mungkin Anda harus menekan F6 untuk memilih perangkat ke-3.

Kemudian, dalam kasus saya, saya dapat membaca suara yang terhubung dengan ssh di komputer jarak jauh tanpa server X menggunakan:

  • cvlc ( yang disertakan dengan paket vlc-nox):
    cvlc --alsa-audio-device="hw:0,3" /usr/share/sounds/alsa/Front_Center.wav
    Jika tidak ok, ubah hw:0,3 menjadi hw:0,0 atau hw:0,1
    Dalam kasus saya, ini juga berfungsi melalui crontab.
  • mpg123:ini berfungsi juga diluncurkan melalui ssh:
    mpg123 -a hw:0,3 Musique/test.mp3

Perhatikan bahwa dalam kasus saya, pulseaudio dinonaktifkan pada pc jarak jauh (tidak yakin penonaktifan berguna karena pulseaudio dimulai melalui sesi X dan lightdm). Untuk memverifikasi bahwa pulseaudio mati dan tidak muncul kembali secara otomatis, jalankan beberapa kali killall -9 pulseaudio


Ubuntu
  1. Cara Meningkatkan ke Ubuntu 15.10 dari Ubuntu 15.04

  2. Menginstal Ubuntu Di Usb Dan Mem-boot Dari Destop Dengan UEFA?

  3. Bluetooth Tidak Bekerja Setelah Melanjutkan Dari Tidur, Ubuntu 18.04 Lts?

  1. Tingkatkan Dari Ubuntu 13.10 ke Ubuntu 14.04

  2. Tingkatkan dari Ubuntu 13.04 ke Ubuntu 13.10

  3. Cara menyinkronkan tanggal dan waktu dari baris perintah di Ubuntu

  1. Cara Meningkatkan Dari Ubuntu 16.04 ke Ubuntu 18.04

  2. Cara Meningkatkan ke Ubuntu 22.04 LTS dari Ubuntu 20.04 LTS dan 21.10

  3. Upgrade Dari Windows Xp Ke Windows 7?