Hallo,
ich habe mal etwas mit mplayer gespielt. Anbei ein kleines BASH-Script, wie man die Idee von Thomas$ nutzen könnte.
Code:
#!/bin/bash
cfile="/tmp/mplayctl" # FIFO-Datei
max=5 #Einträge in der 'Playlist'
vmax=100 #maximale Lautstärke, nicht Geschwindigkeit
#*****************************Playlist Beginn
r0="stop" # das gleiche wie quit. Da ist ein Fehler im MPlayer. Also nicht nutzen! Wird vom Script ignoriert! Pause könnte den RAM vollaufen lassen
r1="http://player.ffn.de/comedy.mp3"
r2="http://ndr-ndr2-nds-mp3.akacast.akamaistream.net/7/400/252763/v1/gnl.akacast.akamaistream.net/ndr_ndr2_nds_mp3"
r3="http://stream.laut.fm/just80s_maximal"
r4="http://player.ffn.de/ffn.mp3"
r5="http://188.94.97.91:80/radio21.mp3"
#*****************************Playlist Ende
sfile="/tmp/mplayscript" # Wird die gelöscht, wird das Script beendet
lfile="/tmp/playpos" # Position in der 'Playlist' Durch ein anderes Programm oder so befüllen
vfile="/tmp/playvol" # Lautstärke zwischen 0 und 100 Durch ein anderes Programm oder so befüllen
touch $sfile
echo "1" > $lfile
echo "75" > $vfile
posalt=1
volalt=75
if [ -e $cfile ]; then
rm $cfile
sleep 1
fi
mkfifo $cfile
mplayer -slave -input file=$cfile $r1 </dev/null >/dev/null 2>&1 & # Ohne Ausgaben
#mplayer -slave -input file=$cfile $r1 & # Mit Ausgaben
echo "set_property volume 75" > $cfile
while [ -e $sfile ] ; do
pos=$(cat $lfile)
vol=$(cat $vfile)
if [ $pos -le $max ] && [ $pos -gt 0 ]; then
if [ $pos != $posalt ]; then
posalt=$pos
adr=$(eval echo \$\{r${pos}\})
echo "Pos:$pos=$adr"
echo "loadfile $adr" > $cfile
fi
fi
if [ $vol -le $vmax ] && [ $vol -ge 0 ] ; then
if [ $vol != $volalt ]; then
volalt=$vol
echo "Lautst:$vol"
echo "set_property volume $vol" > $cfile
fi
fi
done
echo "quit" > $cfile
echo "Programm beendet!"
rm $cfile
exit
Lesezeichen