Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: intranet soitin

peg [29.12.2008 21:22:27]

#

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>

peg [29.12.2008 23:56:23]

#

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.

neau33 [01.01.2009 16:17:31]

#

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)

jlaire [01.01.2009 19:00:27]

#

neau33 kirjoitti:

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;
}

// .....

Miksi noin vaikeasti?

sStr = sStr.replace(/<title>/g, "");
sStr = sStr.replace(/<entry>/g, "");
sStr = sStr.replace(/Ref href=/g, "");
// .....

peg [01.01.2009 23:44:58]

#

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.

neau33 [02.01.2009 00:40:11]

#

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)...

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta