Song aus einer ListBox abspielen

mathon

Grünschnabel
hi,

also ich habe zwei WebSeiten: Auf der ersten werden verschiedene Musiker angezeigt von denen Links zur zweiten Seite führen und in der url jeweils die entsprechende ID zum musiker haben. Somit werden dann in der zweiten webseite je nach dem Parametervalue die entsprechenden verfügbaren Songs zu dem Musiker angezeigt. Jetzt möchte ich aber noch neben der ListBox einen play und stop button haben. Das heißt wenn der user auf play klickt wird das selektierte Lied von der ListBox abgespielt. Das was ich an JavaScript bis jetzt habe sieht so aus:

Code:
    <script language="javascript" type="text/javascript">
      <!--
       var formular = new Array(0);
       decode();

    /* Diese Funktion decodiert die Angaben im Pfad */

      function decode()
       {
        var url   = window.location.search;
        if (url != "")
         {
          url = url.substring(1,url.length);                      // Die Daten werden aus der
                                                                  // Url extrahiert und in
          liste = url.split("&");                                 // Wertepaare am & getrennen
          for (i=0;i<=liste.length-1;i++)
           {
            temp = liste[i].split("=");                           // Feld und Daten jedes
            formular.splice(formular.length,2,temp[0],temp[1]);   // Paares werden zerlegt
           }
          for (i=0;i<=formular.length-1;i++)
          {
           formular[i] = formular[i].replace(/\+/g," ");
              // Ersetzen des + durch Blank
           formular[i] = unescape(formular[i]);                   // Escapesequenzen rekonstruieren
          }
         }
       }

        <!--
         for (var i=0;i<formular.length;i++)
         {
       var musician = formular[++i];
         }
        //-->

             if (musician == "mozart")
       {
        document.write("<select name=\"Auswahl\" size=\"8\" onchange=\"CheckAuswahl(this.value)\">");
      document.write("<option>Lied1</option>");
      document.write("<option>Lied2</option>");
      document.write("</select>");
     }
       </script>


Also mit dem onChange und der Übergabe des Song-titles ist das kein problem. Aber ich möchte jetzt gerne neben der Listbox einen Play-Button erstellen und wenn man auf diesen klickt wird das lied das in der listbox selektiert ist abgespielt.

Mit <embed src="...> kann ich ja ein audio-file einbinden, nur sind da bei mir leider noch zwei Unklarheiten:

a) Wie kann ich im embed src="..." das jeweils selektierte Lied aus der ListBox angeben?

b) Kann man das definieren, dass das lied dann erst anfängt zu spielen, wenn man auf den play-button klickt?

wäre super, wenn mir da jemand weiterhelfen könnte!

mfg matti
 
hallo,

ich habe es jetzt hinbekommen, dass ich aus einer listbox einen titel auswählen kann und dann auf einen link starten klicken kann und das lied abgespielt wird:

Code:
<script language="javascript" type="text/javascript">
  <!--
   var formular = new Array(0);
   var myEmbed;
   decode();
  

/* Diese Funktion decodiert die Angaben im Pfad */

function decode()
   {
    var url   = window.location.search;
    if (url != "")
     {
      url = url.substring(1,url.length);                      // Die Daten werden aus der
                                                              // Url extrahiert und in
      liste = url.split("&");                                 // Wertepaare am & getrennen
      for (i=0;i<=liste.length-1;i++)
       {
        temp = liste[i].split("=");                           // Feld und Daten jedes
        formular.splice(formular.length,2,temp[0],temp[1]);   // Paares werden zerlegt
       }
      for (i=0;i<=formular.length-1;i++)
      {
       formular[i] = formular[i].replace(/\+/g," ");
          // Ersetzen des + durch Blank
       formular[i] = unescape(formular[i]);                   // Escapesequenzen rekonstruieren
      }
     }
   }
	
    for (var i=0;i<formular.length;i++)
     {
	  var musician = formular[++i];
      document.write("<tr><td>" + formular[i] + "</td>");
      document.write("<td><tt>" + formular[++i] + "</tt></td></tr>");
     }
	 
	 var embedCreated = 0;
	 var myEmbed;
	 var adresse;
	
	 function sound() {
	 
	 for (var i=0;i<document.getElementsByTagName("select")[0].options.length;i++)
	 {
	 	if (document.getElementsByTagName("select")[0].options[i].selected == true)
		{
    		adresse = document.getElementsByTagName("select")[0].options[i].value;
			alert(adresse);
    	}
	 	
	 }
	 
	 var adresse1 = adresse;
	 if(embedCreated==1){
	 var zuLoeschen = document.getElementsByTagName("embed")[0];
	 document.getElementsByTagName("body")[0].removeChild(zuLoeschen);
	 }
	 myEmbed = document.createElement("embed");
	 myEmbed.setAttribute("src",adresse1);
	 myEmbed.setAttribute("autostart","true");
	 myEmbed.setAttribute("loop","false");
	 myEmbed.setAttribute("hidden","true");
	 var Ausgabebereich = document.getElementsByTagName("body")[0];
	 Ausgabebereich.appendChild(myEmbed);
	 embedCreated = 1;
	 }
	 
 //-->
</script>
<script>
	if (musician=="Bach")
	{	
		document.write("<select name=\"Auswahl\" size=\"8\" onChange=\"CheckAuswahl(this.value)\">");
      	document.write("<option selected=\"selected\">Test1</option>");
		document.write("<option>symphonie.mp3</option>");
		document.write("</select>");
	}

</script>

und der starten link:
Code:
<a href="#" onClick="javascript:sound()">Starten</a>

Jedoch habe ich noch ein Problem bei dem Stoppen-Link:

Code:
<a href="#" onClick="javascript:document.embeds[0].stop()">Stoppen</a>
Leider funktioniert das Stoppen nicht, obwohl ich oben beim javascript mit dem createElement - das ist sicher das einzige embed -Element, das ich auf meiner Seite habe.

Muss man das irgendwie anders definieren?

lg matti
 

Neue Beiträge

Zurück