Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 09-jul-2008, 19:03   #1 (permalink)
korg1988 tiene algunos puntos positivos de karma
 
Avatar de korg1988
 
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 435
De acuerdo [APORTE] Información de la transmisión con Shoutcast

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!

Última edición por korg1988; 09-jul-2008 a las 19:28.
korg1988 está desconectado   Responder Citando
Antiguo 09-jul-2008, 21:46   #2 (permalink)
Moderador
GatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradableGatorV es realmente agradable
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 12.595
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Hola korg1988,

Gracias por tu aporte.

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 10-jul-2008, 00:10   #3 (permalink)
nicolyto77 está en el buen camino
 
Avatar de nicolyto77
 
Fecha de Ingreso: marzo-2007
Ubicación: Buenos Aires
Mensajes: 382
Enviar un mensaje por MSN a nicolyto77 Enviar un mensaje por Skype™ a nicolyto77
Respuesta: [APORTE] Información de la transmisión con Shoutcast

Holas

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

Gracias denuevo y Saludos
__________________
Caba Rules ^^
nicolyto77 está desconectado   Responder Citando
Antiguo 10-jul-2008, 00:51   #4 (permalink)
pateketrueke tiene algunos puntos positivos de karma
 
Avatar de pateketrueke
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 2.009
Enviar un mensaje por MSN a pateketrueke
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)
__________________
== Tiempo por Energía es Igual a Arte ==
pateketrueke está desconectado   Responder Citando
Antiguo 10-jul-2008, 08:33   #5 (permalink)
korg1988 tiene algunos puntos positivos de karma
 
Avatar de korg1988
 
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 435
De acuerdo Respuesta: [APORTE] Información de la transmisión con Shoutcast

Gracias por los mensajes!

Vamos a ver que trae la version 2.0 jajaj!
korg1988 está desconectado   Responder Citando
Antiguo 11-jul-2008, 10:32   #6 (permalink)
hernansam ha deshabilitado el karma
 
Avatar de hernansam
 
Fecha de Ingreso: septiembre-2007
Ubicación: Funes , Argentina
Mensajes: 110
Enviar un mensaje por MSN a hernansam
Respuesta: [APORTE] Información de la transmisión con Shoutcast

muy bueno el aporte , felicitaciones
hernansam está desconectado   Responder Citando
Antiguo 24-jul-2008, 11:23   #7 (permalink)
pato12 está en el buen camino
 
Avatar de pato12
 
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 505
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
__________________
Videos Yao - Comparte tus videos con el mundo...
pato12 está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 4,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 21:54.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93