Private
Public Access
1
0

added play/pause for slider button

This commit is contained in:
Sander Roosendaal
2019-12-06 17:27:58 +01:00
parent 9b9c707efa
commit 824005f315

View File

@@ -100,7 +100,7 @@
id="myRange"> id="myRange">
</div> </div>
<div id="dataplay"></div> <div id="dataplay"></div>
<div id="datastop"></div> <!-- <div id="datastop"></div> -->
</li> </li>
<li class="grid_2"> <li class="grid_2">
<div id="player"></div> <div id="player"></div>
@@ -119,7 +119,8 @@
// 3. This function creates an <iframe> (and YouTube player) // 3. This function creates an <iframe> (and YouTube player)
// after the API code downloads. // after the API code downloads.
var player; var player;
var playing; var playing = false;
var dataplaying = false;
var videotime = 0; var videotime = 0;
var data = JSON.parse('{{ data|safe }}'); var data = JSON.parse('{{ data|safe }}');
{% for id, metric in metrics.items %} {% for id, metric in metrics.items %}
@@ -185,56 +186,65 @@
datatime = slider.value; datatime = slider.value;
if (lock.checked) { if (lock.checked) {
sliderpos = Math.round(videotime) + Math.round(delay); if (!dataplaying) { // set data values
slider.value = sliderpos; sliderpos = Math.round(videotime) + Math.round(delay);
// Setting Data slider.value = sliderpos;
// velo = boatspeed[Math.round(datatime)];
lat = latitude[Math.round(datatime)];
lon = longitude[Math.round(datatime)];
// strokerate = spm[Math.round(datatime)];
// catchangle = ctch[Math.round(datatime)];
{% for id, metric in metrics.items %}
{{ id }}_now = {{ id }}_values[Math.round(datatime)];
// console.log(datatime,{{ id }}_now, "{{ metric.name }}")
{% endfor %}
document.getElementById("time").innerHTML = Math.round(videotime); // Setting Data
document.getElementById("datatime").innerHTML = Math.round(datatime); // velo = boatspeed[Math.round(datatime)];
// document.getElementById("speed").innerHTML = velo; lat = latitude[Math.round(datatime)];
// document.getElementById("spm").innerHTML = strokerate; lon = longitude[Math.round(datatime)];
// document.getElementById("catch").innerHTML = catchangle; // strokerate = spm[Math.round(datatime)];
{% for id, metric in metrics.items %} // catchangle = ctch[Math.round(datatime)];
document.getElementById("{{ id }}").innerHTML = {{ id }}_now; {% for id, metric in metrics.items %}
document.getElementById("{{ id }}").className = 'bold'; {{ id }}_now = {{ id }}_values[Math.round(datatime)];
{% endfor %} // console.log(datatime,{{ id }}_now, "{{ metric.name }}")
{% for group in metricsgroups %} {% endfor %}
try {
set_{{ group }}();
} catch (e) {} document.getElementById("time").innerHTML = Math.round(videotime);
{% endfor %}
try { document.getElementById("datatime").innerHTML = Math.round(datatime);
var newLatLng = new L.LatLng(lat, lon);
// console.log(newLatLng); // document.getElementById("speed").innerHTML = velo;
marker.setLatLng(newLatLng); // document.getElementById("spm").innerHTML = strokerate;
} catch (e) { // document.getElementById("catch").innerHTML = catchangle;
{% for id, metric in metrics.items %}
document.getElementById("{{ id }}").innerHTML = {{ id }}_now;
document.getElementById("{{ id }}").className = 'bold';
{% endfor %}
{% for group in metricsgroups %}
try {
set_{{ group }}();
} catch (e) {}
{% endfor %}
try {
var newLatLng = new L.LatLng(lat, lon);
// console.log(newLatLng);
marker.setLatLng(newLatLng);
} catch (e) {
}
} }
} else { } else {
output.value = Math.round(datatime)-Math.round(videotime); if (!dataplaying) {
output.value = Math.round(datatime)-Math.round(videotime);
}
} }
} }
function stopVideo() { function stopVideo() {
player.stopVideo(); player.pauseVideo();
playing = false;
} }
// call this function when player state changes // call this function when player state changes
function onPlayerStateChange(event) { function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) { if (event.data == YT.PlayerState.PLAYING) {
playing = false;
} else { } else {
playing = true;
} }
} }
</script> </script>
@@ -325,15 +335,18 @@
// Update the current slider value (each time you drag the slider handle) // Update the current slider value (each time you drag the slider handle)
slider.oninput = function() { slider.oninput = function() {
try { if (!lock.checked) {
output.value = Math.round(slider.value)-Math.round(player.getCurrentTime()); // Display the default slider value try {
delay = Math.round(slider.value)-Math.round(player.getCurrentTime());
delay = Math.round(slider.value)-Math.round(player.getCurrentTime());
output.value = Math.round(slider.value)-Math.round(player.getCurrentTime()); // Display the default slider value
}
catch(err) {
output.value = Math.round(slider.value);
delay = Math.round(slider.value);
}
} }
catch(err) { clearInterval(timeupdater);
output.value = Math.round(slider.value);
delay = Math.round(slider.value);
}
clearInterval(timeupdater)
var datatime = this.value var datatime = this.value
var videotime = Math.round(player.getCurrentTime()); var videotime = Math.round(player.getCurrentTime());
if (lock.checked) { if (lock.checked) {
@@ -341,13 +354,14 @@
player.seekTo(this.value-output.value); player.seekTo(this.value-output.value);
videotime = this.value-output.value; videotime = this.value-output.value;
} else { } else {
if (playing) { if (playing && !dataplaying) {
player.seekTo(0); player.seekTo(0);
player.playVideo(); player.playVideo();
} }
else { else if (!playing && !dataplaying) {
player.seekTo(0); player.seekTo(0);
player.pauseVideo(); player.pauseVideo();
playing = false;
} }
} }
} else { } else {
@@ -415,10 +429,10 @@
else { else {
player.seekTo(0); player.seekTo(0);
player.pauseVideo(); player.pauseVideo();
playing = false;
} }
} }
} else { } else {
console.log('changing, not checked');
output.value = this.value-Math.round(player.getCurrentTime()); output.value = this.value-Math.round(player.getCurrentTime());
} }
var datatime = this.value var datatime = this.value
@@ -477,6 +491,7 @@
// pluggen // pluggen
var timer; var timer;
function clock() { function clock() {
timer = setInterval(myClock, 1000); timer = setInterval(myClock, 1000);
var c = parseInt(slider.value,10); var c = parseInt(slider.value,10);
@@ -488,6 +503,28 @@ function clock() {
slider.value = c; slider.value = c;
// update data fields // update data fields
lat = latitude[Math.round(c)];
lon = longitude[Math.round(c)];
{% for id, metric in metrics.items %}
{{ id }}_now = {{ id }}_values[Math.round(c)];
// console.log(datatime,{{ id }}_now, "{{ metric.name }}")
{% endfor %}
{% for id, metric in metrics.items %}
document.getElementById("{{ id }}").innerHTML = {{ id }}_now;
document.getElementById("{{ id }}").className = 'bold';
{% endfor %}
{% for group in metricsgroups %}
try {
set_{{ group }}();
} catch (e) {}
{% endfor %}
try {
var newLatLng = new L.LatLng(lat, lon);
// console.log(newLatLng);
marker.setLatLng(newLatLng);
} catch (e) {
}
if (lock.checked) { if (lock.checked) {
player.seekTo(c+parseInt(output.value)); player.seekTo(c+parseInt(output.value));
@@ -505,19 +542,43 @@ dataplay.type = "button";
dataplay.value = "Play"; dataplay.value = "Play";
document.getElementById("dataplay").appendChild(dataplay); document.getElementById("dataplay").appendChild(dataplay);
var datastop = document.createElement("input"); // var datastop = document.createElement("input");
datastop.type = "button"; // datastop.type = "button";
datastop.value = "Stop"; // datastop.value = "Stop";
document.getElementById("datastop").appendChild(datastop) // document.getElementById("datastop").appendChild(datastop)
dataplay.onclick = function() { dataplay.onclick = function() {
clock(); if (lock.checked) {
dataplaying = false;
if (playing == false) {
player.playVideo();
dataplay.value = "Pause";
playing = true;
} else {
player.pauseVideo();
dataplay.value = "Play";
playing = false;
}
} else {
if (!dataplaying) {
clock();
dataplay.value = "Pause";
dataplaying = true;
if (lock.checked) {
playing = true;
}
} else {
clearInterval(timer);
dataplay.value = "Play";
dataplaying = false;
}
}
} }
datastop.onclick = function() { // datastop.onclick = function() {
console.log('stopping'); // console.log('stopping');
clearInterval(timer); // clearInterval(timer);
} // }
}); });
</script> </script>