Information Technology Reference
In-Depth Information
ganze Tracks ausgetauscht. Sowohl das Menü als auch die Vor-, Zurück-, Loop-
und Shuffle-Buttons bewirken diesen Wechsel von einem Track zum anderen,
weshalb sich die Scriptlogik etwas verkompliziert.
Beginnen wir mit dem audio -Element:
<audio src="music/bbb_01_intro.ogg"
oncanplay="canPlay()"
ontimeupdate="updateProgress()"
onended="continueOrStop()">
</audio>
Beim Laden der Seite setzen wir das src -Attribut auf den ersten Track und
definieren drei Callbacks, von denen updateProgress() schon bekannt ist - die-
se Funktion kümmert sich um das Nachführen des Sliders und die Aktualisie-
rung der Zeitanzeige (siehe Listing 4.1). Neu sind das Callback canPlay() , das
aufgerufen wird, sobald ein Track spielbereit ist, sowie continueOrStop() , das
am Ende eines Tracks entscheidet, wie es weitergehen soll. Das oncanplay -
Callback canPlay() ist recht kurz und sieht so aus:
canPlay = function() {
curPos.max = audio.duration;
if (pbStatus.keepPlaying == true) {
_play();
}
};
Offensichtlich wird mit curPos.max wie schon beim Video-Player das max -Attri-
but des Sliders angepasst, doch was hat es mit dem darauf folgenden if -Block
auf sich? Die Antwort ist einfach: Wir versuchen, den aktuellen Abspielstatus
zu berücksichtigen und nur dann weiterzuspielen, wenn der Player auch vorher
schon im Abspielmodus war.
Entscheidend dafür, ob wir nach einem Wechseln also mit dem Spielen begin-
nen, ist der Status des Play-Buttons: Haben wir erst einmal mit dem Abspielen
begonnen, muss nach jeder Track-Änderung auch wieder weitergespielt wer-
den. Befindet sich der Play-Button hingegen im Pause-Modus, wird nur ge-
wechselt. So kompliziert das klingt, so einfach ist die Umsetzung im Callback
des Play-Buttons, dem wir folgenden Code hinzufügen:
pbStatus.keepPlaying =
(pbStatus.keepPlaying == true) ? false : true;
Search WWH ::




Custom Search