mplayer не может воспроизводить аудио из cron, пока ncmpcpp проигрывает одновременно

Я установил скрипт, который выполняет команду mplayer, для воспроизведения звука в crontab. Он будет выполнен в специальное установленное время, но этот скрипт не может воспроизводить звук, когда ncmpcpp (интерфейс для mpd, он же Music Player Daemon) воспроизводит музыку. Но этот скрипт может воспроизводить аудио, когда я запускаю его из терминала следующим образом:

sh bin/alarm.sh   

Я пытаюсь получить вывод из crontab или скрипта, но безрезультатно. Я думаю, что некоторые настройки в ncmpcpp или mplayer неверны, или mpd использует тот же демон с демоном crontab.

  • Во всяком случае, я не могу найти решение. Если вы знаете, пожалуйста, помогите мне.

4 ответа

Решение

Похоже, проблема заключается в том, что mpd по умолчанию работает под пользователем mpd (как системный демон) и, таким образом, не может присоединиться к микшеру pulseaudio ваших сессий, поэтому он загружает вывод звуковой карты через alsa или даже oss. В своем ответе я предполагаю, что вы вошли в систему и что crontab принадлежит вам, а не системному crontab.

MPD

В зависимости от ваших приоритетов, у вас есть много вариантов, которые в основном заключаются в идее обучения mpd, чтобы не переключать звук и вместо этого использовать pulseaudio. Смотрите MPD вики.

MPlayer

Вы можете настроить mplayer по умолчанию на pulseaudio, поместив строку ao=pulse в ~/.mplayer/config но pulseaudio должен подхватить его с помощью плагина alsa.

XDG_RUNTIME_DIR=/run/user/$(id -u) <sound command>

Также взгляните на ссылки ниже, так как могут понадобиться другие переменные:

https://wiki.archlinux.org/index.php/PulseAudio#Play_sound_from_a_non-interactive_shell_.28systemd_service.2C_cron.29

mplayer не может воспроизводить аудио из cron, пока ncmpcpp проигрывает одновременно

В вашем crontab, пожалуйста, добавьте это в раздел команд

export DISPLAY=:0.0 && sh /bin/alarm.sh

export DISPLAY=:0.0 требуется для запуска графических приложений.

При использовании, например, play (от sox пакет), следующая информация должна быть экспортирована:

export DISPLAY=:0
export XAUTHORITY=/home/YOURUSERNAME/.Xauthority
Другие вопросы по тегам