Kolla om Mplayer spelar något

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Squall Leonhart
Inlägg: 33
Blev medlem: 08 jun 2007, 23:17
OS: Kubuntu
Ort: Umeå
Kontakt:

Kolla om Mplayer spelar något

Inlägg av Squall Leonhart »

Vi har ett par datorer som fungerar som kioskdatorer till kunderna. Samma datorer spelar även upp musik genom mplayer i terminalen (så kunderna inte kan påverka något). Detta funkar bra men jag skulle behöva någon sorts kontroll på om det faktiskt spelar något. Ibland händer det att nätverket dör på de olika fastigheterna och då stannar såklart musiken, vilket irriterar.
Så jag skulle vilja kunna kontrollera kanske var 5-10 sekund om det spelas något, och om inte så ska den bara försöka starta spelningen igen.

Så här ser sh-filen ut som körs via @reboot i crontab:

Kod: Markera allt

#!/bin/bash

while :
do
        if ping -c 1 192.168.15.6 >/dev/null
        then
                break
        fi
done

/usr/bin/mplayer -ao alsa http://192.168.15.6:8000
Går det att åstadkomma någon sådan kontroll? Jag tänkte något i stil med att kolla om det finns en aktiv buffertfil eller något sådant och om inte så starta om spelningen.
Jag gissar bara då bash-scripter är relativt nytt för mig.
Användarvisningsbild
johanre
Serveradmin
Inlägg: 3888
Blev medlem: 22 okt 2006, 09:13
OS: Ubuntu
Utgåva: 22.04 Jammy Jellyfish LTS
Ort: Malmö

Re: Kolla om Mplayer spelar något

Inlägg av johanre »

Squall Leonhart skrev:Ibland händer det att nätverket dör på de olika fastigheterna och då stannar såklart musiken, vilket irriterar.
Så jag skulle vilja kunna kontrollera kanske var 5-10 sekund om det spelas något, och om inte så ska den bara försöka starta spelningen igen.
Squall Leonhart skrev:Går det att åstadkomma någon sådan kontroll? Jag tänkte något i stil med att kolla om det finns en aktiv buffertfil eller något sådant och om inte så starta om spelningen.
Visst går det att göra! Du är på rätt väg med scriptet men det behöver justeras lite:

Kod: Markera allt

#!/bin/bash
while :
do
        if `ping -c 1 192.168.15.6` > /dev/null
        then
                break
        fi
done
/usr/bin/mplayer -ao alsa http://192.168.15.6:8000
Notera dock att när du gör på detta viset så kör scriptet *hela* tiden. Jag skulle förslagsvis ändra utgångspunkten lite och testa om nätverket svarar en gång i minuten (via ett bash script startat från cron) och starta mplayer ifall nätet inte svarar. Det finns många sätt att resonera kring den här frågan. Men; nu pratar vi dock mer om tycke och smak. Lösningen du har nu fungerar så som den är.
Skriv svar

Återgå till "Terminalforum"