added play/pause for slider button
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user