Web Rádio - Pedidos Musicais Automáticos
No presente artigo, demonstro um pequeno sistema feito por mim em Shell Script e PHP, de uma Web Rádio com pedido musical automático. Onde o usuário digita uma palavra-chave para cantor e música, e o sistema a toca automaticamente.
Requisitos e Instalação
Requisitos
- Requisitos para instalação:- Servidor Linux Slackware, no caso, usei somente em modo texto (opcional), mas fica a seu critério;
- Placa de áudio com recurso de Audio MIX ou Cabo P2 da saída de áudio na entrada de linha ou Microfone;
- Servidor ICECAST-kh, mas tem que ser nesta versão KH, e não na versão normal do Icecast, pois iremos usar o recurso de áudio AAC Plus com o tocador de plugin Flash gratuito na página;
- Encoder DarkIce compilado com plugin AAC Plus;
- Biblioteca LibAAC-Plus;
- Programa MPG123 para tocar as músicas;
- Conexão com a Internet com boa taxa de Upload;
- Servidor WEB, usei o Apache com suporte a PHP;
- Banco de dados de Músicas MP3.
Instalação
Faça o download dos arquivos:- IceCast-KH: http://www.xiphicecast.webspace.virginmedia.com
- Darkice: http://code.google.com/p/darkice/
- LibAAC-Plus: http:// 217.20.164.161/~tipok/aacplus/libaacplus-1.1.0.tar.gz
Arquivos “mus33” e “loopex” atualizados, entre outros:
Bom, o sistema é simples e funcional, ficou mais de 1 mês rodando sem quedas e sem apresentar problemas. Não vou explicar como instalar e configurar o Icecast, bem como o Darkice e suas respectivas bibliotecas.
Descompacte o arquivo “.zip” em “/geral/”. Depois de tudo instalado e funcionando, vamos para os scripts (que são 2 principais).
Arquivo “mus33”, segue abaixo:
#!/bin/sh
#Desenvolvido por Alessandro Périgo
#email: alessandroperigo@hotmail.com
#Por Favor - Se repassar o codigo mantenha o nome do autor.
while :;
do
c=1
while [ $c -le 4 ]
do
echo "Welcone $c times"
#killall mpg123 && killall mpg123 && killall mpg123 && killall mpg123
(( c++ ))
sleep 1
done
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
lostatus=$(cat lo)
if [ "$lostatus" == "0" ]
then
STATUS_ABC=`ps ax | grep mpg123 | grep -v grep | grep -v $0 | awk '{print $1}'`
if [ ! -n "$STATUS_ABC" ]
then
echo "Musicas Variadas" > aovivo
mpg123 -C -z /geral/musica/variados/*.mp3
echo "0" > vinheta
fi
fi
fi
fi
fi
fi
sleep 1
done
Estes dois arquivos trabalham em loop infinito, portando, abra um terminal pra cada um deles, o “mus33” recebe os pedidos do arquivo, lista e os toca. O arquivo “loopex” fica responsável por tocar as músicas variadas, pois quando não há pedidos, o sistema não pode parar, e a rádio tem que continuar tocando músicas mesmo sem pedidos.
E quando há um pedido de música, e esta música consta no banco de dados, o sistema pára a música que está sendo tocada pelo sistema, e toca uma vinheta, logo depois, toca as músicas que estão na lista de pedidos.
Lembrando que o arquivo “lista” tem sempre prioridade, caso não existir nenhuma música neste arquivo, ele volta a tocar as músicas variadas que estipulei.
como tem no kboing