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 originalfunction mp3(nombre,rpt,width,height){
CodeGen = ""
var mediaURL,rpt,width,height
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")
nueva.document.open()
nueva.document.write("<center>")
nueva.document.write("
<body bgcolor='#669999' text='#000000'></body>")
nueva.document.write("
<table border='0' align='center'>")
nueva.document.write("
<tr>")
nueva.document.write("
<td valign='middle' align='center' bgcolor='oldlace' ")CodeGen = '<object id=Player' + '\n' ;
CodeGen += 'codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902' + '\n' ;
CodeGen += 'type=application/x-oleobject height=' + height + ' width=' + width + '\n' ;
CodeGen += ' standby="Loading Microsoft® Windows® Media Player components..." ' + '\n' ;
CodeGen += 'classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"> ' + '\n' ;
CodeGen += '
<param NAME="Filename" VALUE="' + nombre + '">' + '\n' ;
CodeGen += '
<param NAME="ShowStatusBar" VALUE= "true">';
CodeGen += '
<param NAME="autoStart" VALUE="true"><param NAME="Volume" VALUE="0">' + '\n' ;
CodeGen += '
<param NAME="playCount" VALUE=' + rpt + '></object>'
nueva.document.write("
</td>")
nueva.document.write("
</tr>")
nueva.document.write("
</table>")
nueva.document.write("</center>")
nueva.document.write(CodeGen)
nueva.document.close()
}
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<?php
echo '<tr><td>'.$row["CLASE"].'</td>';
?>
<td>
<a href="javascript:void(null)" onclick="mp3('http://www.prolatin.com/musica/<?php echo $midi;?>,1,300,60')"><?php echo $row["TEMA"]; ?></a>
</td>
<?php
echo '<td>'.$row["RITMO"].'</td>';
echo '<td>'.$row["AUTOR"].'</td>';
echo '<td>'.$row["ARREGLO"].'</td>';
echo '<td>'.substr($row["FECHA"],-19,4).'</td>'; if ($row["NUEVO"]==1){
echo '<td>'."NUEVO".'</td>';
}else{
echo '<td>'."".'</td>';
}
}
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.