Eu costumo mpg123
tocar uma lista de músicas enquanto trabalho. O host que realmente executa mpg123
e toca a música é um sistema local, sem interface , mas posso me conectar a ele por SSH. Eu começo mpg123
neste host em cron
; ele toca as faixas de áudio da minha "playlist" em um loop contínuo. No entanto, há momentos em que preciso pausar a música (chamadas telefônicas recebidas, visitantes, etc.).
man mpg123
diz que pressionando a s
tecla uma vez eu posso pausar a reprodução, e pressioná-la novamente para recomeçar. Se eu iniciar mpg123
em um terminal, e deixá-lo rodando, isso funciona bem. Eu também aprendi que é possível enviar um sinal de "pausa" ( s
) para mpg123
quando ele estiver sendo reproduzido em uma screen
sessão:
$ screen -S mpg123 # to start the screen session
$ /usr/bin/mpg123 --loop -1 /home/pi/rainstorm.mp3 # for example
'ctrl+a, d' # quit screen
...
$ screen -S mpg123 -X stuff "s" # pauses play
Encontrei uma pergunta parecida com a minha aqui no SO , mas a resposta parece não atingir o objetivo - pelo menos eu não entendi!
Não consegui encontrar um método que me permita enviar um s
comando "pause" ( ) para mpg123
se ele foi iniciado em cron
. Eu preferiria uma rota mais diretascreen
do que enviar esse comando para mpg123
, além disso, não tenho certeza se isso poderia ser configurado usando cron
.
Alguém pode me aconselhar sobre uma abordagem? Eu preferiria uma " bash
solução" a uma que exija (por exemplo) um programa em C - mas ficaria feliz em aceitar o que eu puder conseguir!
citando de
man mpg123
:você pode iniciar o mpg123 em um shell com:
mpg123 -R --fifo /tmp/mpg123_fifo
e então envie o comando de ajuda para o pipe com:
echo "help" > /tmp/mpg123_fifo
Ele mostrará uma ajuda com os comandos que você pode enviar dessa maneira. Como carregar um arquivo ou um fluxo http ou como silenciar, ativar o som, alterar o volume, etc. etc.
Depois que você estiver familiarizado com os comandos, você pode iniciá-lo com o cron e enviar o comando para o arquivo fifo (pipe nomeado).
você também pode redirecionar a saída para o arquivo com:
mpg123 -R --fifo /tmp/mpg123_fifo > /tmp/mpg123_output
então monitore a interface remota com:
tail -f /tmp/mpg123_output
divirta-se !