V tomto článku vám ukážem,ako pomocou HTML5 vytvoriť video s prehrávačom
V komentároch v zdrojovom kóde nájdete jednoduchý postup.
Vytvoríme si súbor .html s názvom napr. videopcexpert.html
<!DOCTYPE html> <html> <meta charset="utf-8" /> <link rel="stylesheet" href="styly.css"> <title>Časová osa</title> <video id="movies" autoplay oncanplay="startVideo()" onended="stopTimeline()" autobuffer="true" width="400px" height="300px"> <source src="/html5/klip.ogv" type='video/ogg; codecs="theora, vorbis"'> <source src="/html5/klip.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'> </video> <canvas id="timeline" width="400px" height="300px"> <script type="text/javascript"> // doba v milisekundách medzi aktualizáciami snímok var updateInterval = 5000; // veľkosť snímkov var frameWidth = 100; var frameHeight = 75; // počet snímkov var frameRows = 4; var frameColumns = 4; var frameGrid = frameRows * frameColumns; // aktuální snímok var frameCount = 0; // k zrušeniu časovača po skončení prehrávania var intervalId; var videoStarted = false; function startVideo() { // časovač sa nastaví iba pri prvom spustení videa if (videoStarted) return; videoStarted = true; // zobrazení úvodního snímku a nastavení časovače pro pravidelné // zobrazování dalších snímků updateFrame(); intervalId = setInterval(updateFrame, updateInterval); // nastavenie obsluhy kliknutí na snímku var timeline = document.getElementById("timeline"); timeline.onclick = function(evt) { var offX = evt.layerX - timeline.offsetLeft; var offY = evt.layerY - timeline.offsetTop; // určenie poradia snímky, na ktorý používateľ klikli (počíta sa od nuly) var clickedFrame = Math.floor(offY / frameHeight) * frameRows; clickedFrame += Math.floor(offX / frameWidth); // určenie snímku hľadaného vo videu var seekedFrame = (((Math.floor(frameCount / frameGrid)) * frameGrid) + clickedFrame); // ak užívateľ klikol na snímku, ktorý sa v časovej osi nachádza // za aktuálnym snímkom, jedná sa o snímka z predchádzajúceho cyklu snímok if (clickedFrame > (frameCount % 16)) seekedFrame -= frameGrid; // nie je možné posunúť sa pred začiatok videá if (seekedFrame < 0) return; // presunutie na daný snímok videa (v sekundách) var video = document.getElementById("movies"); video.currentTime = seekedFrame * updateInterval / 1000; // nastavenie aktuálneho počtu snímok na cieľový snímku frameCount = seekedFrame; } } // zobrazí snímka na plátne function updateFrame() { var video = document.getElementById("movies"); var timeline = document.getElementById("timeline"); var ctx = timeline.getContext("2d"); // výpočet aktuální pozice na základě počtu snímků // následně se do plátna přidá obrázek - jako jeho zdroj slouží video var framePosition = frameCount % frameGrid; var frameX = (framePosition % frameColumns) * frameWidth; var frameY = (Math.floor(framePosition / frameRows)) * frameHeight; ctx.drawImage(video, 0, 0, 400, 300, frameX, frameY, frameWidth, frameHeight); frameCount++; } // ukončeie zobrazovánía snímku function stopTimeline() { clearInterval(intervalId); } </script> </html>
Výsledok:
http://www.pocitacovyexpert.6f.sk/html5/videopcexpert.html