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>
Также взгляните на ссылки ниже, так как могут понадобиться другие переменные:
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