Information Technology Reference
In-Depth Information
Die Referenz zum Video-Objekt des video -Elements finden wir in evt.target
und speichern sie in der Variablen video . Ein neues Hintergrundbild erzeugen
wir, wie schon so oft, über new Image() , und sobald das Bild vollständig gela-
den ist, geht es weiter ans Zeichnen von Hintergrund und Titel. Die Schritte bis
hierher müssen wir wohl nicht mehr näher erklären, das Zeichnen des ersten
Frames vielleicht schon.
context.setTransform(1,0,0,1,860,20);
context.drawImage(video,0,0,320,240);
context.strokeRect(0,0,320,240);
Zuerst positionieren wir durch setTransform() das Koordinatensystem in der
rechten oberen Ecke und zeichnen dann über drawImage() den ersten Frame
mit Randlinie. Diesen Vorgang werden wir später beim Abspielen ständig
wiederholen, wobei entscheidend ist, dass das HTMLVideoElement video der
drawImage() -Methode immer das Bild des aktuellen Frames bereitstellt.
Das Stoppen, Starten und danach das Kopieren der aktuellen Frames des im
Hintergrund laufenden Originalvideos auf den Canvas sowie das Erzeugen von
verkleinerten Bildausschnitten implementieren wir beim Klicken auf den Can-
vas in der Funktion canvas.onclick() :
var running = null;
canvas.onclick = function() {
if (running) {
video.pause();
window.clearInterval(running);
running = null;
}
else {
var gap = video.duration/10;
video.play();
running = window.setInterval(function () {
if (video.currentTime < video.duration) {
// update video
context.setTransform(1,0,0,1,860,20);
context.drawImage(video,0,0,320,240);
context.strokeRect(0,0,320,240);
// update icons
var x1 = Math.floor(video.currentTime/gap)*107;
var tx = Math.floor(video.currentTime/gap)*5;
context.setTransform(1,0,0,1,10+tx,710);
context.drawImage(video,x1,0,107,80);
Search WWH ::




Custom Search