Sistemas

Programando una radio en Internet (Cap. 5)


Manos a las obras. Presentamos el problema fundamental, lo enfocamos, vimos algunos detalles adicionales, comenzamos a programar, definimos algunas variables básicas... veremos algunos problemas más, y continuaremos diseñando el programa en script BASH.

Ahora existe el siguien problema: el operador de la PC correrá el script BASH que estamos haciendo en cualquier momento.

¿Qué sucede si no lo inicia en punto? Supongamos que todos los programas de la radio comienzan en punto, que el operador llega a las 7:30 de la mañana, enciende todos los equipos, prende la PC, pero un día en vez de iniciar el script a las 8:00 lo inició a las 8:10. También puede suceder que simplemente hubo un corte de electricidad y los equipos se reiniciaron, y eso ocurrió en cualquier instante.

Es un problema.

Bien, nuestro script BASH deberá tener en cuenta que, si no nos encontramos en el minuto 00, o 01 (para darle algo de "aire"), deberá grabar los minutos (contando en segundos, para ser exactos) restantes hasta la próxima hora en punto, y luego continuar grabando 3600 segundos (1 hora) por cada archivo de audio comprimido.

Pasado a lenguaje de programación BASH, esto podría ser así:

if [ "$MIN" -gt 2 ]

then

# definimos la variable esperar, que contiene la cantidad de minutos

# a esperar antes de comenzar a grabar en punto durante la próxima hora

# expr sirve para hacer operaciones matemáticas

esperar=`expr 60 - $MIN`

echo "ATENCION:

Estamos en el minuto $MIN de la hora $HORA"

# Entonces, podemos esperar 60 - $MIN, y comenzar recién en ese

# momento, así queda todo sincronizado.

echo "Grabaremos $esperar minutos y luego comenzamos a grabar

desde el minuto 00..."

# el archivo deberá contener el nombre de las variables que ya hemos definido:

archivo="$DIANOMBRE$DIANUM$MES$ANIO-$HORA-$MIN-hs.ogg"

# Informamos sobre lo que estamos haciendo

echo "Grabando $esperar minutos, luego retomamos desde el minuto 0 para la próxima hora...

Nombre del archivo: $archivo"

# como ecasound funciona en segundos, debemos multiplicar esperar x 60

# y le restamos los segundos demás que lleva esta hora mediante la variable $SEG

# Así la próxma grabación comenzará en el minuto 0 segundo 0

grabar_segundos=`expr $esperar \* 60 - $SEG`

# ahora informamos sobre lo que haremos

echo "total de segundos a grabar: $grabar_segundos, lo cual representa $esperar minutos"

Ya estamos listos para grabar por primera vez. Esto merece una explicación aparte.

Siguiente -->

- Manual para una radio en Internet (Cap. 1)

- Guía para grabar programas de Radio en Internet Cap. 2)

- Problemas de tener una radio online (Cap. 3)

- Radio en Internet: Programación en BASH (Cap. 4)

- Programando una radio en Internet (Cap. 5)

- Radio en Internet: Compresión de audio (Cap. 6)

- Subir programas de radio a Internet (Cap. 7)

- Crear una radio online (Cap. 8)



Por Marcos el mes de agosto del 2008

Historias relacionadas

Volver al inicio