Information Technology Reference
In-Depth Information
1. Hinzufügen eines span -Elements im Anschluss an den Slider:
<span id="timePlayed"> </span>
2. Speichern einer Referenz auf den span in der initControls() -Funktion und
das Initialisieren dieser Variablen curTime mit dem Wert 0:00 :
curTime = document.getElementById("timePlayed");
curTime.innerHTML = '0:00';
3. Updaten des Zeitstempels curTime bei jedem Aufruf von updateProgress() :
mm = Math.floor(video.currentTime / 60.0);
ss = parseInt(video.currentTime) % 60;
ss = (ss < 10) ? '0'+ss : ss;
curTime.innerHTML = mm+':'+ss;
Damit sind wir fast fertig. Nur eine wesentliche Funktionalität des Sliders fehlt
noch: Er muss beim Abspielen des Videos synchron mit der Abspielzeit bleiben. Die
Lösung dafür liegt im HTML-Code zum Einbau des Videos und heißt ontimeupdate .
Die Spezifikation legt nämlich fest, dass beim Abspielen eines Mediastreams im
Abstand von mindestens 15 bis maximal 250 Millisekunden ein timeupdate -Event
auszulösen ist. Welche Callback-Funktion dabei aufgerufen wird, bestimmt das
Event-Handler-Attribut ontimeupdate . Setzen wir es auf updateProgress() , ist der
perfekte Zeitgeber zum Synchronisieren unseres Sliders gefunden.
Der einzige Unterschied zum händischen Setzen der Position beim Klicken
oder Ziehen des Sliders ist, dass wir jetzt nicht die Abspielposition verändern
dürfen, sondern im Gegenzug den Slider und die Zeitanzeige auf video.cur-
rentTime bringen müssen. Die leicht veränderte updateProgress() -Funktion er-
gibt sich demnach folgendermaßen:
var updateProgress = function(ctrl) {
if (ctrl) {
video.currentTime = ctrl.value;
}
else {
curPos.value = video.currentTime;
}
// Setzen der Zeit im Format MM:SS
mm = Math.floor(video.currentTime / 60.0);
ss = parseInt(video.currentTime) % 60;
ss = (ss < 10) ? '0'+ss : ss;
curTime.innerHTML = mm+':'+ss;
};
Listing 4.1: Verändern und Aktualisieren der Abspielposition
Search WWH ::




Custom Search