var vi = { title: "Obsah přednášky", cps: [ { title: 'Úvod', time: 0, level: 1 }, { title: 'Definiční obor', time: 16, level: 1 }, { title: 'Sudost, lichost, průsečíky s osami', time: 33, level: 1 }, { title: 'Intervaly monotonie', time: 57, level: 1 }, { title: 'Animace 1', time: 265, level: 1 }, { title: 'Inflexní body, konvexnost, konkávnost', time: 311, level: 1 }, { title: 'Animace 2', time: 511, level: 1 }, { title: 'Asymptoty', time: 536, level: 1 }, { title: 'Animace 3', time: 765, level: 1 }, { title: 'Graf', time: 800, level: 1 } ] } var playerReady = false; var cp_times = []; // pole časů v sekundách všech odkazovaných bodů ukládaných od nuly //
  • Úvodní slovo0:00:00
  • function createVideoToc() { var list = document.querySelector(".videoindex ul"); if (!list) { list = document.querySelector(".videoindex").appendChild(document.createElement("ul")) ; } list.innerHTML = ""; for (var i = 0; i < vi.cps.length; i++) { var item = vi.cps[i]; var li = document.createElement("li"); li.className = "level" + item.level; li.title = "Skočit ve videu na požadovanou část"; li.setAttribute("data-time", item.time); li.addEventListener("click", seekTime); li.id = "cp_" + item.time; var hod = Math.floor(item.time/3600); var min = Math.floor((item.time % 3600)/60); if (min < 10) min = "0" + min; var sek = item.time % 60; if (sek < 10) sek = "0" + sek; var title = li.appendChild(document.createElement("span")); title.className = "title"; title.innerHTML = item.title; title = li.appendChild(document.createElement("span")); title.className = "time"; title.innerHTML = "" /*+ hod + ":"*/ + min + ":" + sek; item.li = li; list.appendChild(li); } vi.activeCP = -1; vi.player = document.querySelector("video"); //vi.player.play(); } function flashFeedback(fb) { console.log("Flash: " + fb) } function addVideoCp( nazev, cas) { document.getElementById("videoplayer").appendCuePoint(nazev, cas); } function findPrevCuePoint(newTime) { newTime = parseFloat(newTime); if (newTime > cp_times[cp_times.length - 1]) { changeCuePoint("cp_" + cp_times[cp_times.length - 1]); return; } for (var i = 0; i < cp_times.length - 2; i++) { if (newTime > cp_times[i] && newTime < cp_times[i + 1]) { changeCuePoint("cp_" + cp_times[i]); return; } } } var actualCp = ""; function seekTime(evt) { //if (!playerReady) return; //document.getElementById("videoplayer").seekTime(cas); var cas = parseInt(evt.currentTarget.getAttribute("data-time"), 10); vi.player.currentTime = cas; vi.player.play(); if (actualCp != "") { cp = document.getElementById(actualCp); cp.className = cp.className.replace(" active", ""); } changeCuePoint("cp_" + cas); } function setVideo(klip) { document.getElementById("videoplayer").setVideo(klip); } function pauseVideo() { document.getElementById("videoplayer").pauseMovie(); } function changeCuePoint(cpid) { var cp = null; if (cpid.indexOf("stop") == 0) { //alert("video zastaveno na CP " + cpid); pauseVideo(); return; } if (actualCp != "") { cp = document.getElementById(actualCp); cp.className = cp.className.replace(" active", ""); } cp = document.getElementById(cpid); cp.className += " active"; actualCp = cpid; } function playerInitialized() { playerReady = true; /*generateVideoindex();*/ generateCuePoints(); //alert("ready") } window.addEventListener("load", createVideoToc);