Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2010, 12:14
jotaeva
 
Fecha de Ingreso: junio-2010
Mensajes: 37
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema para leer Midi Files

Amigos: un problema un poco complicado. Durante mucho tiempo mi sitio Prolatin estuvo diseñado en ASP. Ahora estoy cambiando todo a PHP porque son incontables las ventajas. Prolatin se compone de 6 subdomains y uno de ellos es Super Midi Latino. He creado más de 700 midis latinos y anteriormente eran para la venta pero ahora son gratis.

Bueno: el problema:

Uso esta función para que el usuario pueda oir el Midi antes de bajarlo:

Código HTML:
Ver original
  1. function mp3(nombre,rpt,width,height){
  2. CodeGen = ""
  3. var mediaURL,rpt,width,height
  4. nueva = window.open ("", "Crescendo", "toolbar=no,location=no,directories=no,status=no,scrollbars=no,resizeable=no,copyhistory=no,width=300,height=48,top=120,left=0")
  5. nueva.document.open()
  6. nueva.document.write("<html><head><title>" + "Super Midi Latino" + "</title>")
  7. nueva.document.write("<center>")
  8. nueva.document.write("<body bgcolor='#669999'  text='#000000'></body>")
  9. nueva.document.write("<table border='0' align='center'>")
  10. nueva.document.write("<tr>")
  11. nueva.document.write("<td valign='middle' align='center' bgcolor='oldlace' ")
  12. CodeGen = '<object id=Player' + '\n' ;
  13. CodeGen += 'codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902' + '\n' ;
  14. CodeGen += 'type=application/x-oleobject height=' + height + ' width=' + width + '\n' ;
  15. CodeGen += ' standby="Loading Microsoft&#174; Windows&#174; Media Player components..." ' + '\n' ;
  16. CodeGen += 'classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> ' + '\n' ;
  17. CodeGen += '<param NAME="Filename" VALUE="' + nombre + '">' + '\n' ;
  18. CodeGen += '<param NAME="ShowStatusBar" VALUE= "true">';
  19. CodeGen += '<param NAME="autoStart" VALUE="true"><param NAME="Volume" VALUE="0">' + '\n' ;
  20. CodeGen += '<param NAME="playCount" VALUE=' + rpt + '></object>'
  21. nueva.document.write("</td>")
  22. nueva.document.write("</tr>")
  23. nueva.document.write("</table>")
  24. nueva.document.write("</center>")
  25. nueva.document.write(CodeGen)
  26. nueva.document.close()
  27. }

Esta función tal cual está funcionó toda la vida en ASP.

El código que lanza la funcion en PHP:

Código PHP:
Ver original
  1. <?php
  2.  while($row=mysql_fetch_assoc($result)){
  3.     echo '<tr><td>'.$row["CLASE"].'</td>';
  4.     $midi=strtolower($row["ARCHIVO"]);
  5.     ?>
  6.     <td>
  7.     <a href="javascript:void(null)" onclick="mp3('http://www.prolatin.com/musica/<?php echo $midi;?>,1,300,60')"><?php echo $row["TEMA"]; ?></a>
  8.     </td>
  9.   <?php
  10.   echo '<td>'.$row["RITMO"].'</td>';
  11.   echo '<td>'.$row["AUTOR"].'</td>';
  12.   echo '<td>'.$row["ARREGLO"].'</td>';
  13.   echo '<td>'.substr($row["FECHA"],-19,4).'</td>';
  14.   if ($row["NUEVO"]==1){
  15.   echo '<td>'."NUEVO".'</td>';
  16.   }else{
  17.   echo '<td>'."".'</td>';
  18.   }
  19. }

Convierto el nombre del Midi a LowerCase porque así está en el servidor y PHP pone problema con Upper/Lower Case. No hay error pero no hay sonido: Cuando abre la ventana que activa Windows Media Player miren el source del código:

<html><head><title>Música original de Jorge Villamizar</title><center><body bgcolor='#669999' text='#000000'></body><table border='0' align='center'><tr><td valign='middle' align='center' bgcolor='oldlace' </td></tr></table></center><embed type="application/x-mplayer2"
pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
Name="MediaPlayer" src="http://www.prolatin.com/musica/adonde.mid,1,280,120"
autoStart=1 ShowStatusBar=1 playCount=undefined volume=0 WIDTH=undefined HEIGHT=undefined>

De los 4 parámetors de la funcion, ignora 3. Sólo lee el nombre de midi pero aunque la ruta está bien y el archivo existe físicamente, no lo encuentra.

Si alguien quiere ver que pasa, este es el url del módulo que procesa los midis.

http://sml.prolatin.com/to.php

Agradecería mucho si me pueden ayudar o sugerirme una forma diferente de que el usuario pueda oir el midi que selecciona (click en el nombre del Midi) en PHP.

Saludos.