golondrino: zweite Hintergrundmusik verzögert abspielen

Hallo ich habe folgende Frage:

Wie kann ich in HTML eine zweite Hintergrundmusik so anlegen, dass sie sich erst nach einer bestimmten Zeitvorgabe einblendet. Das gleichzeitige Abspielen zweier Hintergrundsounds habe ich bereits bewerkstelligt indem ich zum einen mit "bgsound" und zum anderen mit dem "embed"-Element arbeite. Um etwas zu hören muß die Angabe bei "autostart" auf 'true' gesetzt sein. Damit fangen aber beide Hintergrundklänge gleichzeitig an.
Ich möchte jedoch auf einfache Art so etwas wie eine Einblendung/Überblendung erzeugen und möglichst nicht auf eine weitere Programmiersprache ausweichen. Ich habe auch schon einmal an JavaScript und CSS gedacht, doch damit kenne ich mich nicht aus.
Wer kann mir helfen und wie? Vielen Dank!

  1. Hallo golondrino.

    Wie kann ich in HTML eine zweite Hintergrundmusik so anlegen, dass sie sich erst nach einer bestimmten Zeitvorgabe einblendet.

    Am Besten, indem du beide in einer einzigen Sounddatei vereinst.
    Dafür gibt es genügend Programme, wie z. B. Audacity.

    Das gleichzeitige Abspielen zweier Hintergrundsounds habe ich bereits bewerkstelligt indem ich zum einen mit "bgsound" und zum anderen mit dem "embed"-Element arbeite.

    Bitte tue dies nicht. Verwende besser den EMFF.

    Einen schönen Freitag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
  2. Hallo,

    das Element <embed>/<object> lassen sich über die üblichen DOM-Methoden getElementsByTagName() ansprechen und die Eigenschaften src/data können überschrieben werden. Zeitliche Abläufe lassen sich durch setTimeout() regeln.

    Beispiel:

    function lade(){  
       document.getElemetsByTagName('object')[0].data="./andere.wma"  
    }  
    window.setTimeout('lade()',5000);
    

    Gruß aus Berlin!
    eddi

  3. Hallo golondrino,

    Wie kann ich in HTML eine zweite Hintergrundmusik so anlegen, dass sie sich erst nach einer bestimmten Zeitvorgabe einblendet. Das gleichzeitige Abspielen zweier Hintergrundsounds habe ich bereits bewerkstelligt indem ich zum einen mit "bgsound" und zum anderen mit dem "embed"-Element arbeite.

    Weder das BGSOUND- noch das EMBED-Element sind valides HTML, aber sei's drum! Du brauchst keine Mischung von beiden Elementen, denn du kannst durchaus jeweils mehrere davon (auch von den validen OBJECT-Elementen einbinden.

    Um etwas zu hören muß die Angabe bei "autostart" auf 'true' gesetzt sein.

    Nein, das musst du nicht, du kannst das Attribut bzw. das entsprechende PARAM-Element auch auf 'false' setzen nd nachträglich mit einer Methode des Plugins deiner Wahl [z.B. Play()] über Javascript starten.

    Auch bei mehreren BGSOUND-Elementen lässt sich im IE was machen.

    Binde dein erstes BGSOUND-Element ganz normal ein, mit einer Angabe zu src und loop. Im src-Attribut referenzierst du dein Kanonlied, das du zeitversetzt mehrfach abdudeln willst. Loop stellst du aber mit Rücksicht auf meine Nerven auf Null, denn was jetzt kommt ist schon schlimm genug:

    Binde so viele weitere BGSOUND-Elemente mit leerer src-Referenz und ebenfalls loop="0" ein, wie du zeitversetzte Wiederholungen deines Konons haben möchtest.

      
    <html>  
    <head>  
    <title>Kanon</title>  
    <meta name="author" content="Gernot Back">  
    <meta name="generator" content="Ulli Meybohms HTML EDITOR">  
    <script type="text/javascript">  
    [code lang=javascript]  
    var lied;  
    var strophen;  
    var spaeter = 9876;  
      
    function init () {  
       if(document.all)  
          strophen = document.all.tags('bgsound');  
       else return false;  
       lied = strophen[0].src;  
       for (i=1; i<strophen.length ; i++ ) {  
          spiele(i);  
       }  
    }  
      
    function einsatz (n) {  
       strophen[n].src=lied;  
    }  
      
    function spiele (n) {  
       window.setTimeout('einsatz(' + n + ')', n*spaeter);  
    }  
      
    window.onload = init;  
    
    ~~~</script>  
    </head>  
    <body>  
       <bgsound src="[ichArmesWelschesTeufli](http://www.volksliederarchiv.de/text906.html).wav" loop="0">  
       <bgsound src="" loop="0">  
       <bgsound src="" loop="0">  
    </body>  
    </html>  
    [/code]  
      
    Bei der globalen Variable 'spaeter' in dem Script gibst du die Anzahl von Millisekunden ein, um die versetzt dein Singsang erneut und den bereits geladenen überblendend gestartet werden soll.  
      
    Ob das auch im Netz funktioniert, hängt davon ab, ob der Browser mit dem Abspielen des ersten Backgroundsounds erst beginnt, wenn die Seite komplett geladen ist, denn sonst stimmt das mit der Zeitverzögerung möglicherweise nicht. Da bin ich mir nicht sicher. Deswegen würde ich die BGSOUND-Elemente in diesem Fall ganz ans Ende des BODY-Elements setzen.  
      
    Gruß Gernot