Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PHP (http://www.forosdelweb.com/f18/)
-   -   [APORTE] Información de la transmisión con Shoutcast (http://www.forosdelweb.com/f18/aporte-informacion-transmision-con-shoutcast-604450/)

korg1988 09/07/2008 19:03

[APORTE] Información de la transmisión con Shoutcast
 
EDITO: Esta version quedo vieja!. Ya saque la version 2.0 con muchas mas features

Mirala en este post http://www.forosdelweb.com/f18/aport...v2-0-a-735207/

-----------------------------------------------------------------------------------------------------------------------------------------

Hola, bueno queria dejar mi aporte, y el otro dia arme un script para un amigo que tiene un sitio y que habia configurado shoutcast para pasar radio, entonces le dije que le iba a crear este script y bueno, ahora no se que hacer con el asi que lo pongo aca, para compartirlo.
Espero que les sirva, quiza haya muchos en internet dando vuelta, pero bueno esta Class esta en español completamente ya que la hice desde 0, asi que pueden modificarla con facilidad y entenderla mejor que muchas que andan dando vuelta en ingles y con mucho codigo al pepe!

Aca va el codigo de la class
shoutcast.php
Código PHP:

<?php

/**
 * @autor Cristián Pérez
 */

class Shoutcast
{    
    private    
$conexion//socket resourse
            
$datos = array 
                        (
                        
'estado'            =>    0//Estado del server (Online, Offline)
                        
'oyentes_actuales'    =>    0//Oyentes que hay actualmente
                        
'oyentes_limite'    =>    0//Limite de oyentes del servidor
                        
'oyentes_pico'        =>    0//Pico maximo de oyentes que tuvo el server
                        
'oyentes_unicos'    =>    0//oyentes unicos que tiene el server
                        
'frecuencia'        =>    0//Frecuencia de transmision
                        
'cancion_actual'    =>    '' //Cancion actual que se escucha
                        
);
    
    public    
$host,
            
$conectado//boolean
            
$puerto,
            
$tiempo_out 30,
            
$online_img,
            
$offline_img;
    
    public function 
Conectar()
    {
        if((
$this->conexion = @fsockopen($this->host$this->puerto$errno$errstr$this->tiempo_out)) == true)
        {
            
$this->ObtenerDatos();
        }
    }
    
    public function 
Cerrar()
    {
        @
fclose($this->conexion);        
    }
    
    
/* Proceso */
    
private function Leerdatos()
    {
        
fputs($this->conexion"GET /7.html HTTP/1.0\r\nUser-Agent: SC Status (Mozilla Compatible)\r\n\r\n");
        while(!
feof($this->conexion))
        {
            
$contenido .= @fgets($this->conexion1024);
        }
        return 
$contenido;
    }
    
    private function 
ObtenerDatos()
    {
        
$contenido                            ereg_replace(".*<body>"""$this->Leerdatos());
        
$contenido                            ereg_replace("</body>.*"","$contenido);
        
$contenido                            explode(",",$contenido);
        
$this->datos['estado']                = $contenido[1];
        
$this->datos['oyentes_actuales']    = $contenido[0];
        
$this->datos['oyentes_limite']        = $contenido[3];
        
$this->datos['oyentes_pico']         = $contenido[2];
        
$this->datos['oyentes_unicos']        = $contenido[4];
        
$this->datos['frecuencia']            = $contenido[5];
        
$this->datos['cancion_actual']        = $contenido[6];
    }
        
    
/* FUNCIONES */
    
public function Estado()
    {
        if(!
$this->conexion) {
            return 
$this->Offline();
        } else {
            return (
$this->datos['estado'] == 1) ? $this->Online() : $this->Offline();
        }
    }
    
    public function 
Oyentes()
    {
        return 
$this->datos['oyentes_actuales'];
    }
    
    public function 
Limite()
    {
        return 
$this->datos['oyentes_limite'];
    }
    
    public function 
Pico()
    {
        return 
$this->datos['oyentes_pico'];
    }
    
    public function 
Unicos()
    {
        return 
$this->datos['oyentes_unicos'];
    }
    
    public function 
Frecuencia()
    {
        return 
$this->datos['frecuencia'];
    }
    
    public function 
CancionActual()
    {
        return 
$this->datos['cancion_actual'];
    }
    
    
/* ESTADOS */
    
private function Online()
    {
        
$this->conectado true;
        return 
$this->online_img;
    }
    
    private function 
Offline()
    {
        
$this->conectado false;
        return 
$this->offline_img;
    }
}

?>

y aca un ejemplo de como usarla

ejemplo.php
Código PHP:

<?
/**
 * @ejemplo Ejemplo de como configurar y utilizar las funciones del script
 */

include("shoutcast.php");

//Crear Objeto
$server = new Shoutcast;
//Configurar
$server->host "xxx.xxx.xxx.xxx"//Ip del servidor
$server->puerto "8000";
$server->tiempo_out 10// si borras esta linea viene por defecto = 30
$server->online_img '<img src="online.gif" border="0" /> Radio Online'//puede ser texto tambien sino
$server->offline_img '<img src="offline.gif" border="0" /> Radio Offline';

$server->Conectar();
?>
<table>
    <tr>
        <td><?=$server->Estado();?></td>
    </tr>
    <?
    
if($server->conectado == true)
    {
    
?>
    <tr>
        <td>Estamos escuchando: <?=$server->CancionActual();?></td>
    </tr>
    <tr>
        <td>Estamos transmitiendo a <?=$server->Frecuencia();?> kbps</td>
    </tr>
    <tr>
        <td>Hay <?=$server->Oyentes();?> Oyentes de <?=$server->Limite();?> Permitidos (<?=$server->Unicos();?> oyentes unicos)</td>
    </tr>
    <tr>
        <td>El maximo de oyentes simultaneos fue de <?=$server->Pico();?> oyentes</td>
    </tr>
    <?
    
}
    
?>
</table>
<?
$server
->Cerrar();
?>

Para los que no saben que es Shoutcast:
http://es.wikipedia.org/wiki/SHOUTcast
http://www.shoutcast.com/

Bueno sin mas que decir les dejo un saludo! y espero que a alguien le sirva, quiza en unos dias suba una actualización con algunas funciones mas! :borracho:

GatorV 09/07/2008 21:46

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Hola korg1988,

Gracias por tu aporte.

Saludos.

nicolyto77 10/07/2008 00:10

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Holas

Muchisimas Gracias, y felicitaciones por ese codigo, se ve genial :aplauso:

Gracias denuevo y Saludos :policia:

pateketrueke 10/07/2008 00:51

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
deveras...

una ves yo hice algo similar... de echo, lo mismo... en una función, nunca se me ocurrió... jeje, suerte!

PDTA: (no es que no quise, es que no pude darte karma)

korg1988 10/07/2008 08:33

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Gracias por los mensajes! :-)

Vamos a ver que trae la version 2.0 jajaj!

hernansam 11/07/2008 10:32

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
muy bueno el aporte , felicitaciones
:aplauso:

pato12 24/07/2008 11:23

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Hola,
¡Recién veo el aporte y esta buenísimo!
Me sirve de mucho pero mi servidor (no local) no lo soporte.
¡Pero anda de 10!
Te felicito.
Gracias
Salu2 :adios:

lafiestalatinafm 02/09/2008 05:44

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
hola amigo que tal yo soy miller tengo una radio por internet desde el canada y quiero poner en la web de la radio las estadisticas de la radio por ejemplo la cantidad de oyenetes todo eso mno se si me entiendas no se si tu puedes ayudarme con eso tengo dos servidores de la radio y quiero configurar los dos para ver las estadisticas en tiempo real.
si puedes ayudarme con eso agregame a tu msn con [email protected]

WyLY 08/09/2008 15:30

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Buen trabajo!, felicitaciones y gracias por la aportación, me ha sido útil. :si:

radiolobito 05/05/2009 16:27

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Perdona mi ignorancia, pero me interesó mucho el post y no entendí bien...

Con este código se puede hacer un reporte de la transmisión del shoutcast o puedo transmitir desde el servidor?

Yo rento un servidor para mi sitio y me gustaría poner algo de radio transmitiendo desde ahí.
Hace mucho tiempo yo transmitía a través de la página de otra persona, así que conozco un poco el funcionamiento de shoutcast.

argy 05/05/2009 18:28

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
intersante el aporte.

gracias

SeaPirates 21/05/2009 04:46

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
y como se peude mostrar el nombre del dj, su foto y las ultimas canciones reproducidas?

juan2362 13/07/2009 19:19

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Hola utilice el script pero creo que no lo use del todo bien porque por mas de que la radio este online aparece como si no lo estibiese y se muestra como offline y a eso hay que agregarle que al reproductor que tengo en esa pagina tampoco anda del todo bien... alguna ayuda?? desde ya muchas gracias

Valenp38 20/07/2009 20:22

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
Cita:

Iniciado por juan2362 (Mensaje 3003366)
Hola utilice el script pero creo que no lo use del todo bien porque por mas de que la radio este online aparece como si no lo estibiese y se muestra como offline y a eso hay que agregarle que al reproductor que tengo en esa pagina tampoco anda del todo bien... alguna ayuda?? desde ya muchas gracias

Yo estoy igual que tu funciona todo bien excepto que siempre dice que esta offline :S

levengeur 19/08/2009 15:30

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
podria agregarse el server title y ultimas 5 canciones o 6 ?.. desde ya seria muy util

kaninox 19/08/2009 16:54

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
genial se va a marcadores me puede ser útil.

saludos.

MARKWEB 04/12/2009 19:41

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
justo lo que necesitaba, eso si necesito ver si puedo pasarlo a flash.. si logro pasarlo lo reposteo

korg1988 06/12/2009 20:10

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
markweb, esta version quedo obsoleta, entra al post de la version 2. vas a trabajar en vano sino!
Lee la parte donde dice EDITO: lalala

korg1988 06/12/2009 20:14

Respuesta: [APORTE] Información de la transmisión con Shoutcast
 
markweb, esta version quedo obsoleta, entra al post de la version 2. vas a trabajar en vano sino!
Lee la parte donde dice EDITO: lalala


La zona horaria es GMT -6. Ahora son las 09:02.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.