0 votes
in SoSci Survey (dt.) by s140746 (185 points)
edited by s140746

Hallo Zusammen,

ich habe 5 Videos, die ich mit ifram eingebunden habe. Mit ganz viel ausprobieren hat es nun geklappt, dass die Videos im Vollbildmodus angezeigt werden. Dafür habe ich diesen Code:

<iframe id="Video" src="https://videoakademie.ko-ld.de/Panopto/Pages/Embed.aspx?id=3016d9f3-da7a-493e-aa61-ac960142b55f&autoplay=true&offerviewer=false&showtitle=false&showbrand=false&start=0&interactivity=none" style="position:fixed; top:0; left:0; bottom:0; right:0; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden; z-index:999999;"></iframe>

Nun ist das Problem, dass man quasi nach dem Video feststeckt. Es gibt keine Möglichkeit den Vollbildmodus zu beenden und den Weiterbutton sieht man durch den Vollbildmodus nicht.
In einem anderen Eintrag hier, habe ich gelesen, dass der
aud.addEventListener("ended", function() {SoSciTools.submitPage()}); Befehl
bei Videos die über ifram eingebunden sind nicht funktioniert.
Also habe ich mir gedacht ich mache es mit Timern. Das habe ich wie auf der Seite hier https://www.soscisurvey.de/help/doku.php/de:create:timer-submit beschrieben gemacht. Allerdings füge ich die Timer dann ja direkt auf die Fragebogenseite ein und kann nur eine Zeit festlegen. Da die Videos teilweise 40 Sekunden unterschiedlich lang sind ist das natürlich doof.

Gibt es eine Möglichkeit über den ifram Code etwas einzustellen oder verschiedene Timer für die einzelnen Videos zu erstellen?

Hier der Code auf der Fragebogenseite:

PHP- Code

if (!isset($time0)) {
  $time0 = time();
  registerVariable($time0);  // Die Variable $time0 auch nach Ende des PHP-Codes aufbewahren
}
// Prüfung, ob die Zeit schon abgelaufen ist
// (z.B. weil der Teilnehmer die Seite neu geladen hat)
$timer = 186;  // Der Teilnehmer hat 3:06 Minute (186 Sekunden) Zeit zur Bearbeitung
if (time() >= $time0 + $timer) {
  goToPage('next');
}
// Die verbleibende Zeit muss auch dem JavaScript-Code bekannt gemacht werden
$remain = $time0 + $timer - time();
replace('%remain%', $remain);

HTML-Code

// Funktion zur Weiterleitung function weiter() { // Den Teilnehmer zur nächsten Seite weiterleiten SoSciTools.submitPage(); } // Initialisierung der Weiterleitung SoSciTools.attachEvent(window, "load", function(evt) { // Timer für automatische Weiterleitung starten window.setTimeout(weiter, %remain% * 1000); });

P.S. noch eine kleine Frage nebenbei. Kann es sein, dass die Funktion " Gerät und übermittelnde Geräte" nicht (mehr) dazu taugt um Probanden am Handy auszuschließen. Z.B. weil die Handys nicht mehr angeben, dass sie Handys sind?

2 Answers

0 votes
by SoSci Survey (320k points)
edited by SoSci Survey

Nun ist das Problem, dass man quasi nach dem Video feststeckt.

Korrekt - es ist kein Vollbild im eigentlichen Sinne, was Sie da haben, sondern ein Video-Frame, das sich über den kompletten Bildschirm legt.

Im Prinzip können Sie natürlich das <iframe> mittels JavaScript verkleinern oder ausblenden. Aber Sie werden nicht 100%ig genau wissen, wann das Video endet. Das ist generell das Problem, wenn man Inhalte per <iframe> einbindet: Man hat keinen Zugriff auf den Inhalt, weiß nicht, welche Kontrollelemente angezeigt werden und weiß auch nicht, wann das Video endet. Sie Sie schon schreiben - das ended können Sie beim der Einbindung via <iframe> nicht nutzen.

Allerdings füge ich die Timer dann ja direkt auf die Fragebogenseite ein und kann nur eine Zeit festlegen

Sie können auf jeder Seite mit einem Video einen Timer mit der passenden Länge einfügen. Der obere Teil mit dem isset() ist ja nur dafür da, dass ein Neu-Laden der Seite nicht zum Neustart des Timers führt. In Ihrem Fall ist das nicht notwendig.

Schreiben Sie also bitte einfach nur folgenden HTML-Code auf die Seite:

<script type="text/javascript">
document.setTimeout(SoSciTools.submitPage, 40000);
</script>

noch eine kleine Frage nebenbei. Kann es sein, dass die Funktion " Gerät und übermittelnde Geräte" nicht (mehr) dazu taugt um Probanden am Handy auszuschließen.

Apple bzw. iOS gibt sich in der Browser-Kennung nicht immer als Mobilgerät zu erkennen. Die von der Frage gespeicherten Informationen sind nur korrekt, wenn sich die Eigenschaften aus der Browserkennung auslesen lassen.

Ich vermute, Sie möchten Handy-Nutzer aufgrund des kleinen Bildschirms ausschließen? Sie können z.B. zu Beginn einbauen, dass man nur durch Drücken der Leertaste forfahren kann :)

by s166545 (130 points)
Hallo, ich habe auch ähnliches Problem und ich habe mit den vorgeschlagenden HTML-Code versucht. Aber mit den Code wird die Seite nur für eine Sekunde gezeigt und dann geht es direkt weiter zur nächsten Seite. Weißt du zufällig, woran es liegen kann? Danke

<script type="text/javascript">
document.setTimeout(SoSciTools.submitPage(), 40000);
</script>
by SoSci Survey (320k points)
Pardon, in meiner Antwort war ein Fehler. Und zwar dürfen nach dem submitPage keine Klammern stehen. Ich habe das oben korrigiert:

<script type="text/javascript">
document.setTimeout(SoSciTools.submitPage, 40000);
</script>
0 votes
by s140746 (185 points)

Sie können auf jeder Seite mit einem Video einen Timer mit der passenden Länge einfügen.

Kurz um zu klären, dass wir beide das Gleiche mit "Seite" meinen. Wenn ich von Seite rede meine ich die eigentliche Fragenbogenseite unter "Fragebogen zusammenstellen". Ist das was Sie oben mit Seite meinen auch die direkte Fragebogenseite oder die Seite unter Fragebogenkatalog - die Rubrik? Weil in meinem Fragebogen habe ich nur eine Seite für alle Videos, die dann durch die Randomisierung die jeweiligen Videos aus den Rubriken abrufen. Und dort auf der Seite weiß ich nicht, wie ich dann jeweils einen Timer pro Video hinbekomme. Hier ein Foto eingefügt, damit hoffentlich klarer wird was ich meine.

>Schreiben Sie also bitte einfach nur folgenden HTML-Code auf die Seite

Auch hier, meinen Sie auf der Fragebogenseite oder in der Rubrik wo auch der Code für das jeweilige Video ist? Und fällt dann der PHP Code komplett weg?

Wenn das nicht geht, würde ich auf das verkleinern des Videos durch Java Skript zurückgreifen. Hätten Sie da einen Tipp für mich wie ich da der Befehl ist?

Vielen Dank für ihre schnelle und gute Hilfe!

by SoSci Survey (320k points)
Ja, ich denke, wir meinen dasselbe mit "Seite". Ich hatte Ihre Frage nur so verstanden, dass Sie im Interview mehrere Videos zeigen wollten.

> Auch hier, meinen Sie auf der Fragebogenseite

Ja. Beziehungsweise, nachdem Sie ohnehin schon einen Text pro Video im Fragenkatalog angelegt haben: Da können Sie es auch gleich unter dem HTML-Code für das jeweilige Video ergänzen. Dann brauchen Sie im Fragebogen gar nichts mehr zu ändern :)

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...