0 votes
in SoSci Survey (dt.) by s139184 (200 points)

Es geht um diesen Code:

<video width="512" height="288" controls controlsList="nodownload" id="stimulus">
  <source src="dateiname.ogg" type="video/ogg" />
  <source src="dateiname.mp4" type="video/mp4" />
  <source src="dateiname.webm" type="video/webm" />
</video>
 
 
<script type="text/javascript">
<!--
 
var video = document.getElementById("stimulus");
 
// Bedienelemente ausblenden, sobald es abspielt
SoSciTools.attachEvent(video, "play", function(evt) {
  stimulus.removeAttribute("controls");
});
// Weiter-Knopf ausblenden
SoSciTools.attachEvent(window, "load", function(evt) {
  SoSciTools.submitButtonsHide();
});
// Weiter-Knopf am Ende des Videos wieder anzeigen
SoSciTools.attachEvent(stimulus, "ended", function(evt) {
  SoSciTools.submitButtonsDisplay();
});
 
// -->
</script>

Ich finde eure Seite im übrigen sehr übersichtlich und benutzerfreundlich!

Lieben Gruß

1 Answer

0 votes
by SoSci Survey (328k points)

Puh ... die zuverlässigste Lösung wäre es vermutlich, das Video so zu schneiden, dass es beide Wiederholungen beinhaltet. Nicht sehr elegant aber effektiv.

Wenn Sie es elegant lösen möchten, dann brauchen Sie einen Zähler und müssen nach dem ersten Abspielen ("ended") zum Ansfang springen mittel currentTime und nochmal abspielen mittels play(). Das könnte ungefähr so aussehen:

<video width="512" height="288" controls controlsList="nodownload" id="stimulus">
  <source src="dateiname.ogg" type="video/ogg" />
  <source src="dateiname.mp4" type="video/mp4" />
  <source src="dateiname.webm" type="video/webm" />
</video>

<script type="text/javascript">
<!--
 
var video = document.getElementById("stimulus");
var wiederholung = 0;
 
// Bedienelemente ausblenden, sobald es abspielt
SoSciTools.attachEvent(video, "play", function(evt) {
  stimulus.removeAttribute("controls");
});
// Weiter-Knopf ausblenden
SoSciTools.attachEvent(window, "load", function(evt) {
  SoSciTools.submitButtonsHide();
});
// Weiter-Knopf am Ende des Videos wieder anzeigen
SoSciTools.attachEvent(stimulus, "ended", function(evt) {
  if (wiederholung == 0) {
    wiederholung = 1;
    stimulus.currentTime = 0;
    stimulus.play();
  } else {
    SoSciTools.submitButtonsDisplay();
  }
});
 
// -->
</script>

Ich finde eure Seite im übrigen sehr übersichtlich und benutzerfreundlich!

Vielen Dank!

by SoSci Survey (328k points)
Eine kleine Bitte: Lassen Sie Ihren Namen in den Postings weg. Nachdem der Online-Support öffentlich ist, muss ich das alles händisch entfernen :(

> Wenn ich jetzt von Seite 1 auf Seite 2 wechsle, also zum Video, erscheint das Standbild des Videos extrem groß (vermutlich weil die Größenbegrenzung aufgehoben ist) und verkleinert sich auf Bildschirmgröße nach einem Klicken auf Abspielen

Schreiben Sie einfach ein style in das <video>-Tag:

<video style="width: 512px; height: 288px" id="stimulus">

Der Stil wird später geändert, das stört also nicht.

> Ist das der Ansatz von dem Sie sprachen (bzgl. einer Hochschulizenz) bzw. haben Sie damit gut Erfahrungen gemacht?

Nein, ich meinte dass SoSci Survey direkt auf einem Server der Uni installiert wird (das bekommt die Uni kostenlos) - aber wenn Sie eine andere gut funktionierende Dateiablage oder Webspace haben, ist das natürlich auch gut.

> Bisher wurde mir rückgemeldet, dass es recht spannend sei

Nun dann - angesichts der Ausgangssperre scheinen Menschen ohnehin gerade mehr Zeit für Onlinebefragungen zu haben :)

> Hier werde ich mich noch einmal einlesen und ggf. auf Sie zurückkommen.

Hier noch der Link: https://www.soscisurvey.de/help/doku.php/de:create:questions:random#variante_1

Was mit Parteinamen geht, klappt natürlich auch mit Dateinamen.
by s139184 (200 points)
edited by s139184
1.

das Video mit diesem Code hat zwar ein kleineres Standbild, vergrößert sich jetzt nicht mehr auf Vollbild. Der Vollbild der zuvor erreicht wurde, war allerdings auch nicht ganz optimal, da er sich nicht wie bei einem Videoplayer an den Bildschirm anpasste. Wenn Sie dazu eine Idee hätten, wäre ich Ihnen sehr dankbar.

https://www.soscisurvey.de/test199042/?act=9Z31Lqp3O0w0kWL1jzb7nuHL

<video style="width: 512px; height: 288px" id="stimulus">
<source src="%videofile%" type="video/mp4" />

</video>

<button id="play" type="button">Abspielen</button>

<script type="text/javascript">
<!--

document.getElementById('play').addEventListener('click', function() {
  video.style.position = "absolute";
  video.style.top = "0";
  video.style.left = "0";
  video.style.width = window.innerWidth + "px";
  video.play();
}, false);

var video = document.getElementById("stimulus");
var wiederholung = 0;

// Bedienelemente ausblenden, sobald es abspielt
SoSciTools.attachEvent(video, "play", function(evt) {
  stimulus.removeAttribute("controls");
});
// Weiter-Knopf ausblenden
SoSciTools.attachEvent(window, "load", function(evt) {
  SoSciTools.submitButtonsHide();
});
// Weiter-Knopf am Ende des Videos wieder anzeigen
SoSciTools.attachEvent(stimulus, "ended", function(evt) {
  if (wiederholung == 0) {
    wiederholung = 1;
    stimulus.currentTime = 0;
    stimulus.play();
  } else {
    SoSciTools.submitButtonsDisplay();
  }
});
// -->

</script>

2. Ja, an sich läuft es aktuell gut mit dem Sync and Share. Bei einer Installation auf einem Server wäre eine optimalere Abspielen der Videos und Studie eher gewährleistet oder gibt sich das nicht viel?


3.
Ich habe eine Seite erstellt, habe hier ein Textbaustein mit Zufallsgenerator (gleichverteilte Ziehung), inklusive Codes mit

01 = https://seafile.rlp.net/f/cca2c1e3313c48f4ad63/?dl=1
02 = https://seafile.rlp.net/f/1987503265af4a5bb45a/?dl=1
03 = https://seafile.rlp.net/f/a18f13a6ec544254bb9d/?dl=1

erstellt. Name der Zufallsgenerator-Variable ist: BL18

Habe dann eine PHP Code unterhalb des Textbausteines des Zufallsgenerators eingefügt:

replace('%videofile%', 'BL18', 'response');

Und dann in meiner HTML-Video Datei folgendes angepasst.

<video id="stimulus">
  <source src=„%videofile%
" />
</video>

Ich nehme an das stimmt, oder? Diese Kombination aus Zufallsgenerator, PHP-Textfeld u. HTLM Code. Muss ich dieses Gesamt-Paket für jede neue Seite mit Stimuli einfügen? Oder nur den HTML-Code jeweils? Beim nächsten Stimuli soll SoSci Survey wissen, dass der gezogene Stimuli nicht noch einmal gezogen wird.


Und wenn ich einen Probelauf vor dem Testlauf starten möchte, dann erstelle ich einen spezifischen, kürzeren Zufallsgenerator mit weniger Codes und mache das genau das selbe wie oben. Der Testlauf Zufallsgenerator löst dann einfach den Probelauf-Zufallsgenerator ab oder? Ich muss den Probelauf Zufallsgenerator nicht beenden oder ähnliches?
by SoSci Survey (328k points)
> das Video mit diesem Code hat zwar ein kleineres Standbild, vergrößert sich jetzt nicht mehr auf Vollbild.

Oh ja. Bitte lassen Sie die Höhenangabe weg - die blockiert das.

> Der Vollbild der zuvor erreicht wurde, war allerdings auch nicht ganz optimal, da er sich nicht wie bei einem Videoplayer an den Bildschirm anpasste.

Sie können hinter das video.play() noch ein video.requestFullscreen() setzen. Ob der Browser das macht oder nicht können aber Browser und Nutzer entscheiden.

> Bei einer Installation auf einem Server wäre eine optimalere Abspielen der Videos und Studie eher gewährleistet oder gibt sich das nicht viel?

Damit wären Fragebogen und Video-Datei auf demselben Server - das kann das ein oder andere Problemchen vermeiden. Muss aber nicht sein. Testen Sie bitte auf alle Fälle, ob es unter Windows, MacOS und mit unterschiedlichen Browsern funktioniert.

> Ich nehme an das stimmt, oder?

Ja, sieht ziemlich gut aus. Allerdings wollten Sie alle Videos in unterschiedlicher Abfolge zeigen, oder? In dem Fall müssten Sie im Zufallsgenerator einstellen, dass mehrere Videos gezogen werden und dann würde sich der Variablenname ändern, z.B. in BL18x1, BL18x2, ...

> Muss ich dieses Gesamt-Paket für jede neue Seite mit Stimuli einfügen?

Nur das replace() und den Textbaustein, welcher den HTML-Code mit <video>-Baustein und JavaScript enthält.
by s139184 (200 points)
1.

Hight ist rausgenommen, klappt wieder. Grundsätzlich wäre ein Vollbild, dass sich automatisch anpasst wie mit video.requestFullscreen() besser, da das Vollbild über "absolute" bisher nicht mittig ist und man hinscrollen muss und somit kein standardisiertes Vorgehen möglich. Außer es ist irgendwie möglich, das Video mittiger anzuzeigen:

https://www.soscisurvey.de/test199042/?act=9Z31Lqp3O0w0kWL1jzb7nuHL

Wenn das nicht gar nicht geht, würde ich mit dem video request Fullscreen Modus arbeiten, aber hierbei wäre es wichtig, dass keine Playtaste und Zeit (also die Menüleiste) zu sehen wäre, sobald das Video abspielt.


2. Ich werde mal jemanden vom ZDV kontaktieren, ob das grundsätzlich möglich ist.

3.
Sie meinen, dass man angibt, dass 56 Zettel pro Interview gezogen werden? Das heißt ich muss in den kommenden replace Codes jeweils den Variablennamen anpassen.

z.B. für 2. Video

replace('%videofile%', 'BL18x2', 'response')


x1, x 2, x 3 usw. scheint ja automatisch als neue Variablennamen vergeben zu werden.

Nur noch einmal, um final sicherzugehen. Jetzt zieht der Zufallsgenerator bei sagen wir Person A bei Stimuli 1 ein Video aus 54 Videos, dann bei Stimuli 2 ein Video aus 53, bei Stimuli 3 ein Video aus 52 ... Sicher ist sicher :)
by SoSci Survey (328k points)
> Außer es ist irgendwie möglich, das Video mittiger anzuzeigen:

Sie können nach belieben mit der Position (top) und der Fenstergröße (window.innerHeight) spielen. Außerdem löst ein Skalieren des Fensters ein JavaScript-Event aus, auf welches Sie reagieren können. Wenn man etwas Zeit zum Spielen hat, kann man tolle Sachen machen.

> Wenn das nicht gar nicht geht, würde ich mit dem video request Fullscreen Modus arbeiten

Das können Sei ja auf alle Fälle drinlassen.

> Sie meinen, dass man angibt, dass 56 Zettel pro Interview gezogen werden? Das heißt ich muss in den kommenden replace Codes jeweils den Variablennamen anpassen.

Im Prinzip ja - Sie möchten ja nicht, dass sich die Videos wiederholen.

Statt es auf 56 Seiten einzeln anzupassen, können Sie auch nur eine Seite verwenden und diese mit loopPage() 56-mal anzeigen lassen - jedesmal mit einem anderen Video. Mehr dazu gerne in einer neuen (!) Frage. Hier wird es langsam sehr unübersichtlich ;)

replace('%videofile%', id('BL18', $i), 'response');

> Nur noch einmal, um final sicherzugehen.

Ja :)

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

...