mp3's abspielen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mp3's abspielen

    hallo,

    Ich möchte gerne auf meiner Web-Seite eine ListBox anbieten, die mit einer Anzahl von Songs gefüllt ist, wo der User dann einen Song aus der ListBox auswählen kann und durch Klick auf einen PlayButton, diese abspielen kann, vielleicht auch einen StopButton um das ganze wieder zu stoppen.

    Kann man das mit HTML und JavaScript einfach lösen bzw. gibts vielleicht sogar ein Beispiel oder Tutorial dazu?

    lg matti

  • #2
    ja das geht - wie du ne mp3 einbindest, weißt du hoffentlich - also machst du eine select-auswahl und bei onchange übergibst du die entsprechende mp3 an die einbindung - zur umsetzung hier ne hilfe:
    http://de.selfhtml.org/javascript/sp...r.htm#onchange
    Signatur-Text ...

    Kommentar


    • #3
      [JavaScript]

      Okay danke, jetzt habe ich vorher noch ein anderes kleines problemchen:

      Ich habe eine Web Seite wo verschiedene Musiker angezeigt werden mit Bild und Namen unterhalb. Wenn jetzt ein Musiker angeklickt wird, wird auf eine zweite Web Seite weitergeleitet und dort soll abhängig von dem Musiker der auf der vorigen Seite angeklickt wurde eine Liste mit entsprechenden Songs von ihm angezeigt werden.

      Okay um mit JavaScript den Parameterwert der über die Url von der vorigen Web-Seite abgefragt wird

      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];
           }
          //-->
         </script>
      Somit habe ich jetzt in der variable musician den Musikernamen der übergeben wurde.

      Und dann möchte ich eben an einer entsprechenden Stelle eine Listbox einfügen und je nachdem welcher Musikernamen übergeben wurde eine Liste mit seinen Songs anzeigen, nur so:

      Code:
      <script>
      	if (musician == "mozart")
      	  {
      	
      	      <select name="Auswahl" size="8">
      			<option>Lied1</option>
      			<option>Lied2</option>
      			<option>Lied3</option>
      			<option>Lied4</option>
      		</select>
      	 
      	  }
      </script>
      funktioniert das leider nicht, weil ich html so nicht in JavaScript einfügen kann.

      Hat da jemand vielleicht eine Lösung dafür?

      matti

      Kommentar


      • #4
        Re: [JavaScript]

        document.write, innerHTML oder per DOM Elemente erzeugen und einhängen (createElement, appendChild/insertBefore).
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ah okay danke. Zur Zeit sieht das jetzt 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 nochmal jemand weiterhelfen könnte!

          mfg matti

          PS: Ich habe dieses problem auch im selfhtml-forum gepostet, weil ich nicht gewußt habe, wo es besser hinpasst.
          Zuletzt geändert von mathon; 14.09.2006, 22:52.

          Kommentar


          • #6
            Ist das doch nicht möglich...? sorry, dass ich so stresse...

            matti

            Kommentar


            • #7
              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

              Kommentar


              • #8
                Hmm... Laß das "var myEmbed" weg, dann ist die Variable global und Du müßtest sie auch aus dem Stoppen-Link ansprechen können.

                Kommentar


                • #9
                  Also ich habe das zweite var myEmbed im javascript teil jetzt weggelasssen, also habe ich die deklaration nur mehr einmal ganz oben nach dem var formular.

                  ich habe dann dieses


                  Code:
                  <a href="javascript:document.embeds[0].stop()">Stoppen</a>
                  aber die audio-datei lässt sich damit immer noch nicht stoppen....??

                  lg matti

                  Kommentar


                  • #10
                    Original geschrieben von pekka
                    Hmm... Laß das "var myEmbed" weg, dann ist die Variable global und Du müßtest sie auch aus dem Stoppen-Link ansprechen können.
                    Soll heißen: Dann kannst Du myEmbed zu Stoppen benutzen.

                    Kommentar


                    • #11
                      Hmm...wie soll ich das definieren? - document.getElementByTagName geht ja nicht, weil myEmbed ja eine Variable und nicht der TagName ist...? - sorry, steh' gerade etwas auf der Leitung...

                      Kommentar


                      • #12
                        myEmbed.stop()

                        Kommentar


                        • #13
                          Naja ich habe es aber so probiert:

                          Code:
                          <a href="javascript:myEmbed.stop()"><img src=\"stop.gif\" />Stop</a>
                          und das funktioniert leider auch nicht...?


                          PS:das leerzeichen bei javascript wurde durch das posting gemacht, ich habe natürlich im code da kein leerzeichen.

                          Kommentar


                          • #14
                            Ups, mein Vorschlag kann gar nicht funktionieren. Nicht genau geguckt.
                            2. Vorschlag: Gib dem Embed eine ID, und spreche es dann mit document.getElementById() an.

                            Kommentar


                            • #15
                              das habe ich jetzt auch probiert:
                              Id-Attribut hinzugefügt:
                              Code:
                               myEmbed = document.createElement("embed");
                              	 myEmbed.setAttribute("id","audio");
                              	 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);
                              und dann im html-code:

                              Code:
                              <a href="javascript:document.getElementById("audio").stop()">Stoppen</a>
                              leider tut sich auch da wenn ich den song versuche zu stoppen nichts...gibts das...??

                              matti

                              Kommentar

                              Lädt...
                              X