chris_blues: Mehrere html5 Hörbeispiele sollen sich gegenseitig stoppen

Beitrag lesen

Hallo!
Ich werde der Sache nicht Herr! Ich bin auch absoluter Neuling in Sachen JavaScript und seh vielleicht nur den Wald vor Bäumen nicht. Aber hier ist das Problem:
Per php-while Schleife wird aus einer html Vorlage eine Liste mit u.a. <audio>-tags gebaut. Das funktioniert soweit alles super. Aber wenn ich jetzt einen Titel starte und dann den nächsten, spielt der "alte" natürlich weiter. Wie kann ich jetzt den alten stoppen?
Ich hatte gehofft, ich könnte es ganz einfach über eine "switch" Variable lösen. Also wenn ich einen Song starte, dann wird diese variable(lastplayed) mit der ID des audio-Tags gesetzt. Wenn ich dann den nächsten starte wird die lastplayed gestoppt. Irgendwie will das aber nicht. Hier der Code; die mit %eingeschlossenen% Werte werden per php mit tatsächlichen Kennungen ausgetauscht. In freier Wildbahn kann man das ganze dann hier sehen:
http://folkadelic.de/store.php (auf die Platte clicken!)

get_audio.html:

<tr><td align="left" valign="center">  
<audio id="%id%_%trackid%" class="%id%_%trackid%" onended="document.getElementById('%id%_%trackid%-pp').src='pics/play.png';">  
 <source src="items/audio/%id%/%trackid%.mp3" type="audio/mpeg" />  
 <source src="items/audio/%id%/%trackid%.ogg" type="audio/ogg" />  
</audio>  
<a class="%id%_%trackid%" href="javascript:play_%trackid%();"><img src="pics/play.png" id="%id%_%trackid%-button" border="0"> %trackname%</a>  
<script type="text/javascript">  
   var audio_%trackid% = document.getElementById('%id%_%trackid%');  
   var lastplayed = document.getElementById('%id%_%trackid%');  
   function play_%trackid%()  
     {  
     if (audio_%trackid%.paused)  
       {  // command: Play!  
         lastplayed.pause();  
         lastplayed.currentTime = 0;  
         audio_%trackid%.play();  
         document.getElementById('%id%_%trackid%-button').src = "pics/play_active.png";  
         var lastplayed = document.getElementById('%id%_%trackid%');  
       }  
     else  
       {  // command: Stop!  
         audio_%trackid%.pause();  
         audio_%trackid%.currentTime = 0;  
         document.getElementById('%id%_%trackid%-button').src = "pics/play.png";  
       }  
     }  
</script>  
</td></tr>

Wenn ich jetzt bei diesem Code die Seite aufrufe, finde ich in FF's Fehlerconsole nur, daß mp3 nicht unterstützt wird und jquery irgendwie nicht ganz rund läuft, das ist mir aber Wurscht! :) NUR: wenn ich einen Song starten will, erscheint nur in der Fehlerconsole, daß lastplayed nicht gesetzt ist, und das ganze Script arbeitet nicht mehr (<audio> auch nicht)... Das Fehlverhalten kann man dann hier in der Baustelle sehen:
http://folkadelic.de/baustelle/store.php (auf die Platte clicken!)

Weiß da jemand guten Rat; was ich hier falsch mache? Ohne die lastplayed-Geschichte arbeitet ja alles einwandfrei...

Vielen Dank schonmal! :)

Schöne Grüße,
chris