Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
14 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Desafios / PPT Playlist / Solucion de Zubyc

Desafío PPT Playlist

#3 Solución de Zubyc

Código de la Solución Ver código | Comentarios Ver comentarios (10) | Descargar Descargar código

Fecha: 19 diciembre 2003

Tamaño: 21689 caracteres

Comentarios: 10

Solución online:
Lo siento, pero no está disponible

Valoración PuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuaciónPuntuación 9.14 (14 votos)

No ha realizado ningún comentario

Valora esta solución

<?
  session_start
(); //Inicio de sesion

  
function obtener_tag($file)
  {
   
$a=fopen($file,"r");
   
fseek($a,filesize($file)-128);
   return
fread($a,128);  // Leemos los últimos 128 bytes
  
}

  function
tratar_texto($t)
  {
    
$t=str_replace("\0","",$t);
    
$t=htmlspecialchars($t);
    return(
$t);
  }

  function
obtener_info_tag($tag)
  {
   
$info['artista']=tratar_texto(substr($tag,3,30));
   
$info['cancion']=tratar_texto(substr($tag,33,30));
   
$info['album']=tratar_texto(substr($tag,63,30));
   return
$info;
  }


// Devuelve la extensión de un archivo
  
function getExtension($archivo)
  {
$a=explode(".",$archivo);    return $a[count($a)-1];  }

  
// Adapta las rutas para que puedan ser leidas por el reproductor
  
function convertRuta($dir)
  {
   
$d=explode("/",$dir);
   for(
$i=0;$i<count($d);$i++){
     if(
strpos($d[$i]," ")!==false) // existe un espacio en el directorio
         
$d[$i]="\"".$d[$i]."\"";
   }
   return (
implode("/",$d));
  }

  
// Obtiene un listado de los archivos musicales del directorio
  
function obtener_listado_musica($dir,&$listado)
  {
    
$f=opendir($dir);
    
// Recorremos el directorio
     
while($file=readdir($f))
     {
        
$ruta=$dir."/".$file;
        if((
$file!=".")&&($file!=".."))
        {
          if(
is_dir($ruta))  obtener_listado_musica($ruta,$listado);
          else{
            if(
strtoupper(getExtension($file))=="MP3")
            {
             
$i=count($listado);
             
$listado[$i]['file']=$file;
             
$listado[$i]['dir']=$dir."/";
            }
          }
        }
     }
     
closedir($f);
   }
?>
<?
  
//--------------------------
  // CONFIGURACION
  // Ruta y parámetros
  
$player="c:/archiv~1/winamp3/winamp3.exe";
  
$param= array(
       
"play"    =>" ",
       
"enqueue" =>"/ADD"
  
);
  
//--------------------------

  
$dir="c:/musica";  // Directorio por defecto

  // PROGRAMA (NO TOCAR!)

  // Se especifica una Nueva Ruta
  
if(isset($_GET["path"]))
  {
    
$path=urldecode($_GET["path"]);
    if(!
file_exists($path)) { echo "No existe el directorio"; exit; }
    
$_SESSION['path']=$path;
  }elseif(empty(
$_SESSION['path'])) $_SESSION['path']=$dir;

  
$path_actual=$_SESSION['path']; // Ruta que se va a usar

  
$listado=array();
  
obtener_listado_musica($path_actual,$listado);
  
sort($listado);
  
// Reproducir Cancion
  
if(isset($_GET['play']))
  {
$id=$_GET['play'];  $tipo="play";  }
  
// Añadir a lista de reproducción
  
if(isset($_GET['enqueue']))
  {
$id=$_GET['enqueue'];  $tipo="enqueue";  }

  if(isset(
$tipo))
  {
    
$ruta_normal=$listado[$id]['dir'].$listado[$id]['file'];
    
$ruta=convertRuta($ruta_normal);
    
$comando=$player." ".$param[$tipo]." ".$ruta;
    
system($comando);
  }

?>
  <html><head>
  <style type="text/css"> form { margin:0px; } a {color:#645300 } a:hover{color:#645300}
   .c {background-color:#FFFBF1} table { border:1px solid #000000; } td{font-size:10px; font-family:Tahoma} input{font-size:10px;}
  </style></head>
  <body>
  <form method='get' action='<?=$PHP_SELF?>'>
  <table width='60%' align='center'>
  <tr><td align='center'><input type="text" name="path" size='30' value='<?=$path_actual?>'> <input type='submit' value='Ver Carpeta'></td></tr>
  </table>
  <table width='60%' align='center'><tr><td>PPT Playlist by Zubyc</td><td align='center'>Directorio actual: <b><?=$path_actual?></b></td><td align='right'>PHP-Hispano.NET</td></tr></table>
  </form>
  <table width='60%' align='center'>
  <?
    
for($i=0;$i<count($listado);$i++)
    {
     
$tag=obtener_tag($listado[$i]['dir'].$listado[$i]['file']);
     
$info=obtener_info_tag($tag);
     
$info_text="Artista: $info[artista]\nCanción: $info[cancion]\nAlbum: $info[album]";
     
$c=(!($i%2))?"c":"";
     echo
"<tr class='$c'><td align='center' width='15' bgcolor='#FFDF88'>$i</td>
                   <td >+ {$listado[$i]['file']}</td>
                   <td width='70'><a href='javascript:;' title=\"$info_text\">Id3 Mp3 Tag</a></td>
                   <td align='center' width='50'><a title='Reproducir' href='$PHP_SELF?play=$i'>Play</a></td>
                   <td><a title='Añadir en la lista' href='$PHP_SELF?enqueue=$i'>Enqueue</a></td></tr>"
;
    }
?>
  </table>
  </body></html>

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster