LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Pongamos que tienes una colección de ficheros de música (o video) que quieres abrir aleatoriamente, cansado de ser reproducidos uno tras otro, o una lista predeterminada.

Pues estos ficheros son tu solución, este primer ejemplo es un Script de Linux, al que le hemos incluido un fichero de configuración, para que puedas abrir con tu reproductor multimedia preferido, en  este ejemplo, el reproductor es SMPlayer.

Para Linux, "necesitas" instalar kdialog, si no lo tienes instalado.

Para una versión de "sólo texto", puedes usar "dialog"

Al fichero lo vamos a llamar "azar.sh", lo debes guardar en tu carpeta de música o vídeos, y recuerda darle permisos de ejecución con:

chmod a+x azar.sh

Este es el código:

#/bin/bash
load_conf()
{
        CONF="./azar.conf"
        if [ -f "$CONF" ] && [ ! "$CONF" ==  "" ]; then
                source $CONF
        else
                head
                echo "\$CONF not found."
                exit 1
        fi
}
load_conf
echo $CONF

kdialog --yesnocancel "¿Ponemos música un Rato?" --yes-label Adelante --no-label DETENER --cancel-label CANCELAR

case $? in
0)
        echo "Ponemos música"
	echo "Abriendo un fichero de música al azar"
	echo 'COMANDO="smplayer"' > ./azar.conf
	# Si elige "mplayer", en vez de smplayer, los ficheros saltarán automáticamente.
	echo " "
	for i in {1..20}; do
		load_conf
        	Aqui=`pwd`
	        Fichero=`find . -size +1M | shuf -n 1`
        	echo "$Fichero"
	        $COMANDO "$Fichero"
	done
        exit 0
        ;;
1)
        echo "DETENIENDO TODO, Paramos la música"
	echo 'COMANDO="#"' > ./azar.conf
	killall $COMANDO
	exit 0
        ;;
2)
        echo "CANELADO"
        exit 0
        ;;
esac

 

Necesitas crear el fichero de configuración, que para este ejemplo será el siguiente:(recuerda que a través del script puedes cambiar el reproductor)

COMANDO="smplayer"

Y para aquellos que por desgracia no se puedan liberar de Windows, este fichero de proceso por lotes BAT:

@echo off & setlocal
 :: start of main
 rem Set your path here:
 set "workDir=%cd%"

 rem Read the %random%, two times is'nt a mistake! Why? Ask Bill.
 rem In fact at the first time %random% is nearly the same.
 @set /a "rdm=%random%"
 set /a "rdm=%random%"

 rem Push to your path.
 pushd "%workDir%"

 rem Count all files in your path. (dir with /b shows only the filenames)
 set /a "counter=0"
 for /f "delims=" %%i in ('dir /s /b ^|find "."') do call :sub1

 rem This function gives a value from 1 to upper bound of files
 set /a "rdNum=(%rdm%*%counter%/32767)+1"

 rem Start a random file
 set /a "counter=0"
 for /f "delims=" %%i in ('dir /s /b ^|find "."') do set "fileName=%%i" &call :sub2

 rem Pop back from your path.
 popd "%workDir%"

 goto :eof
 :: end of main
 :: **********************************************************************************
 :: start of sub1
 :sub1
 rem For each found file set counter + 1.
 set /a "counter+=1"
 goto :eof
 :: end of sub1
 :: ********************************************************************************** 
 :: start of sub2
 :sub2
 rem 1st: count again,
 rem 2nd: if counted number equals random number then start the file.
 set /a "counter+=1"
 if %counter%==%rdNum% (start "" "%fileName%")
 goto :eof
 :: end of sub2
 :: **********************************************************************************
 :: -snap--- end of batch

Por supuesto, eres libre de modificar los códigos fuentes aquí descritos.

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías