Hallo zusammen,
ich habe ein Video in meinen Fragebogen integriert. Das Video soll erst starten, wenn man den Play-Knopf drückt. Die Bedienelemente sind während der Laufzeit ausgeblendet. Dies funktioniert soweit auch. Zusätzlich soll ein Countdown starten, der über die Dauer des Videos herunterzählt. Sobald der Countdown und somit auch das Video durchgelaufen sind, soll der Next Button erscheinen.
Ich habe hierzu Folgenden Code verwendet:
<video width="854" height="480" controls controlsList="nodownload" id="stimulus" >
<source src="pro://Condition_1.mp4" type="video/mp4" />
<source src="pro://Condition_1.webm" type="video/webm" />
</video>
<script type="text/javascript">
var video = document.getElementById("stimulus");
//Countdown anpassen je nach Scenario!!!
var countdown = 98;
var countdownDisplay;
var countdownTimer;
// "submit0" ist der Weiter-Knopf,
// mit "buttonsAuto" kann man auch den Zurück-Knopf ausblenden
var buttonID = "submit0";
function countdownStart() {
// Next button
var button = document.getElementById(buttonID);
// Create countdown element
countdownDisplay = document.createElement("div");
var cd = countdownDisplay;
cd.style.display = "inline-block";
cd.style.textAlign = "center";
cd.style.fontWeight = "bold";
cd.style.width = button.offsetWidth + "px";
cd.style.height = button.offsetHeight + "px";
// Init countdown
button.parentNode.appendChild(countdownDisplay);
countdownRefresh();
// Hide next button
button.style.display = "none";
// Start countdown
countdownTimer = window.setInterval(countDown, 1000);
}
function countDown() {
if (countdown > 1) {
countdown--;
countdownRefresh();
} else {
window.clearTimeout(countdownTimer);
// Display nextbutton
var button = document.getElementById(buttonID);
button.style.display = "";
// Remove countdown
button.parentNode.removeChild(countdownDisplay);
}
}
function countdownRefresh() {
// Clear
while (countdownDisplay.lastChild) {
countdownDisplay.removeChild(countdownDisplay.lastChild);
}
// Display
var content = document.createTextNode(countdown + " sec");
countdownDisplay.appendChild(content );
}
SoSciTools.attachEvent(video, "play", countdownStart);
// Bedienelemente ausblenden, sobald es abspielt
SoSciTools.attachEvent(video, "play", function(evt) {
stimulus.removeAttribute("controls");
});
// Weiter-Knopf ausblenden
SoSciTools.attachEvent(window, "load", function(evt) {
var button = document.getElementById(buttonID);
button.style.display = "none";
});
// Weiter-Knopf am Ende des Videos wieder anzeigen
SoSciTools.attachEvent(stimulus, "ended", function(evt) {
stimulus.setAttribute("controls","controls");
});
</script>
Das funktioniert soweit auch, aber wenn ich das Fenster vergrößere/verkleinere, beginnt das der Countdown erneut. Zusätzlich steht dieser leider nicht an der Stelle wo der Next-Button erscheint, sondern weiter rechts. Wenn ich die Seite verlasse, dann hängt der Countdown komplett - es wäre super, wenn mir jemand helfen könnte!
Vielen Dank für Eure Hilfe!