Sida 1 av 1

Kolla om Mplayer spelar något

Postat: 29 jun 2015, 11:00
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.

Re: Kolla om Mplayer spelar något

Postat: 02 jul 2015, 18:24
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.