Olen tekemässä tällaista kotiverkkoon tarkoitettua soitinta.
Ongelma, miten saa param arvoksi näkymään soittolistan sisällön?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi" lang="fi"><head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> .soitin { position:fixed; top:50px; left:10px; z-index:1; width:320px; height:120px; } .lista { position:absolute; top:10px; left:350px; z-index:3; width:720px; height:120px; } </style> <?php $linkki = $_GET['page']; $hae = $_GET['pg']; if($linkki == '') { $linkki = 'Valitse kappale'; } $haku = strip_tags($hae); if(isset($_POST["pg"])) { $haku .= $_POST["pg"]; } ?> <div class="soitin"> <form action="glob.php" method="get"> <input type="text" name="pg" value="<? echo $haku ?>"><input type="submit" value="Etsi"> </form> <pre>Soitetaan -> </pre><? echo $linkki ?> <br><br> <object id="mediaplayer1" width="280" height="140" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"> <param value="<?php echo $linkki ?>" name="Filename"/> <param value="true" name="AutoStart"/> <param value="True" name="ShowControls"/> <param value="true" name="ShowStatusBar"/> <param value="true" name="ShowDisplay"/> <param value="True" name="AutoRewind"/> <embed width="280" height="120" autorewind="1" showdisplay="1" showstatusbar="1" showcontrols="1" autostart="1" src="<?php echo $linkki ?>" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/MediaPlayer/" type="application/x-mplayer2"/> </object> <br> <?php foreach (glob('*.m3u') as $listat) { $listaa .= $listat; echo "<a href='?page=$listat'> $listat</a><br>"; } ?> </div> <div class="lista"> <br> <pre> <?php echo $linkki; ?><br><br><? @include ($linkki); if ($haku =='') { $haku = ('ääää'); } foreach (glob('C:/musiikki/*'.$haku.'*.mp3') as $fileet) { echo "<a href='?page=$fileet&pg=$haku'>$fileet</a><br>"; } ?> </div>
Lisäämällä tuohon embed osaan - ShowGotoBar="1" - soitin näyttää missä se
soittolista pitäisi näkyä, vaan en saa toimimaan. olen kokeillut .asx .m3u ja
.wpl soittolistoilla, harmi kun muuten pelaa ihan ok.
Moikka peg!
vaikkakin php:n syntaksi on aina minua hieman etonut niin tässä kuitenkin pikku php/javascript-ajax räpellys - homma kuitenkin toimii aika kivasti local-servulla (VS.Php 2.5 Standalone Edition) elikä aktiivisen listan saa näkyviin klikkaamalla linkkiä hiiren oikealla näpykällä...
index.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script language="javascript" src="ajaxjs.php"></script> <?php echo "<font face='Verdana' size=2>Valitse soittolista:<br>"; $delim = "\\"; $start = ""; foreach (glob('*.asx') as $fileet) { $temp = explode($delim , $fileet); $temp2 = str_ireplace('.asx','',$temp[sizeof($temp)-1]); echo "<a href='?page=$fileet&pg=$haku' onmouseup='showlist(". '"' . $temp2 . '"' .");'>$temp2</a><br />"; if ($start == ""){ $start = $fileet; } $temp = null; $temp2 = null; } $linkki = $_GET['page']; $hae = $_GET['pg']; if($linkki == '') { $linkki = $start; } $temp = explode($delim , $linkki); $temp2 = str_ireplace('.asx','',$temp[sizeof($temp)-1]); echo "<br /><font face='Verdana' size=2></font>Aktiivinen soittolista:<br />" . $temp2 . "<br />"; $temp = null; $delim = null; ?> </head> <div class="soitin"> <body bgcolor=#666660><form id="form1"> <object id="wmplayer" width="280" height="170" classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"> <embed type="application/x-mplayer2" name="wmplayer" pluginspage= "http://www.microsoft.com/Windows/Downloads/Contents/MediaPlayer/"/> <param name="AutoStart" value="true"/> <param name=="SendPlayStateChangeEvents" value="true"/> <param name="ShowControls" value="true"/> <param name="PlayCount" value="9999"> <param name="ShowStatusBar" value="true"/> <param name="ShowDisplay" value="true"/> <param name="AutoRewind" value="true"/> <param name="ShowGotoBar" value="true"/> <param name="uiMode" value="full"> <param name="Filename" value="<?php echo $linkki ?>" /> </object></div> <table border="1" width="280" id="table1"> <tr> <td bgcolor="#000000"> <font color="#6699F5" face="Verdana" size="1"> <?php echo $temp2; $temp2=null;?> <br /><div id="asxdiv"> </div></font></td> </tr> </table> </form></body></html>
ajaxjs.php:
function showlist(obj){ var lnk; //mun VS.Php lätkii jutskan tohon porttiin lnk = "http://localhost:27197/" + obj + ".x"; getASX(lnk); } function getASX(url){ httpObject = getHTTPObject(); if (httpObject != null) { httpObject.open("GET", url) httpObject.send(url); httpObject.onreadystatechange = setOutput; } function getHTTPObject(){ if (window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest){ return new XMLHttpRequest(); } else { alert("Selaimesi ei tue AJAXia."); return null; } } function setOutput(){ if(httpObject.readyState == 4){ var sStr; var rStr; sStr = httpObject.responseText; while (sStr.indexOf("<title>") > 0){ rStr = sStr.replace('<title>',''); sStr = rStr; } while (sStr.indexOf("<entry>") > 0){ rStr = sStr.replace('<entry>',''); sStr = rStr; } while (sStr.indexOf("<Ref href=") > 0){ rStr = sStr.replace('<Ref href=',''); sStr = rStr; } while (sStr.indexOf('"') > 0){ rStr = sStr.replace('"',''); sStr = rStr; } rStr = sStr.replace('<asx','') sStr = rStr; rStr = sStr.replace(' Version=','') sStr = rStr; rStr = sStr.replace('3.0>','') sStr = rStr; while (sStr.indexOf("</title>") > 0){ rStr = sStr.replace('</title>','<br>~'); sStr = rStr; } while (sStr.indexOf("</author>") > 0){ rStr = sStr.replace('</author>','<br>~'); sStr = rStr; } while (sStr.indexOf("<entry/>") > 0){ rStr = sStr.replace('<entry/>','<br>~'); sStr = rStr; } while (sStr.indexOf("</asx>") > 0){ rStr = sStr.replace('</asx>',''); sStr = rStr; } while (sStr.indexOf("</entry>") > 0){ rStr = sStr.replace('</entry>','<br>~'); sStr = rStr; } while (sStr.indexOf("<author>") > 0){ rStr = sStr.replace('<author>',''); sStr = rStr; } while (sStr.indexOf("/>") > 0){ rStr = sStr.replace('/>','<br>~'); sStr = rStr; } while (sStr.indexOf('\n') > 0){ rStr = sStr.replace('\n',''); sStr = rStr; } var xarr = new Array(); xarr = sStr.split('~'); sStr = ""; for (var i=0; i<xarr.length-2;i++){ if(xarr[i].indexOf(".wma") > 0){ var sarr = new Array(); sarr = xarr[i].split('\\'); sStr += sarr[sarr.length -1 ]; sarr = null; } else { if (xarr[i]!=undefined){ sStr += xarr[i] } } } while (sStr.indexOf('undefined') > 0){ rStr = sStr.replace('undefined',''); sStr = rStr; } document.getElementById('asxdiv').innerHTML = sStr; sStr=null; rStr = null; xarr = null; } } } var httpObject = null;
soittolista1.asx: (tallenna ASCII - muodossa)
<asx Version="3.0"> <title>Nea's playlist</title> <entry> <title>Symphny No. 9</title> <author>Ludvig van Beethoven</author> <Ref href="C:\Documents and Settings\All Users\Tiedostot\Omat musiikkitiedostot\Musiikkinäytteet\Beethovenin yhdeksäs (Scherzo).wma"/> </entry> <entry> <title>New Stories (Highway Blues)</title> <author>Marc Seales</author> <Ref href="C:\Documents and Settings\All Users\Tiedostot\Omat musiikkitiedostot\Musiikkinäytteet\New Stories (Highway Blues).wma"/> </entry> </asx>
soittolista1.x:
(tallenna soittolista1.asx unicode-muodossa nimellä soittolista1.x)
neau33 kirjoitti:
Miksi noin vaikeasti?
sStr = sStr.replace(/<title>/g, ""); sStr = sStr.replace(/<entry>/g, ""); sStr = sStr.replace(/Ref href=/g, ""); // .....
Esitin huonosti kysymyksen. koodinihan listaa .m3u soittolistat tai voi vaihtaa
myös .wpl muotoon sekä hakee kappaleet, mutta tuohon soittimeen haluaisin sen listan jotta voisi siirtyä siihen kohtaan mihin haluaa valitsemalla sen siitä soittimen listasta. Olen yrittänyt param name = playlist ym. mutta ei ole onnistanut.
Moikka taas peg!
neau33 kirjoittaa mitä sattuu, mutta mä en vaan jostain kumman syystä saanut poistettua kerralla kaikkea ylimääräistä tuolla lyhyemmällä kaavalla, joten aikani räpellettyäni hermostuin ja päätin käyttää pitempää kaavaa koska sain siten poistettua kaiken minkä halusin...voipi olla, että joko java-masiinassani tai VS.Php:n apache-masiinassa onmpi pugi(ja)...
Aihe on jo aika vanha, joten et voi enää vastata siihen.