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 (305k 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 s139184 (200 points)
edited by s139184
Hi,

danke für Ihre schnelle Rückmeldung! Die Videos aneinander zu schneiden, habe ich bereits ebenfalls in Erwägung gezogen. Bis jetzt habe ich noch keine Programm gefunden, dass die Qualität des 4K Original-Videos exakt erhält.

Warum wäre es grundsätzlich zuverlässiger das Video zu schneiden? Können spezielle Codes ab und zu Schwierigkeiten machen?

------

Ich habe Ihren Code ausprobiert und er funktioniert grundsätzlich gut. Wäre es auch möglich, dass man das Video über einen Start Button ... wie in diesem Code beginnen lässt?
->

<video id="player" >
  <source src="Demofilm.mp4" type="video/mp4">
  <source src="Demofilm.ogg" type="video/ogg">
    Ihr Browser kann dieses Video nicht wiedergeben.<br/>
    Dieser Film zeigt eine Demonstration des video-Elements.
    Sie können ihn unter <a href="#">Link-Addresse</a> abrufen.
</video>

<button id="play">Play</button>
<button id="pause">Pause</button>
<button id="duration">Länge anzeigen</button>
<p id="ausgabe"></p>
 
<script>
  var song = document.getElementById('player');
  document.getElementById('play').addEventListener('click', function() { song.play(); }, false);
  document.getElementById('pause').addEventListener('click', function() { song.pause(); }, false);
  document.getElementById('duration').addEventListener('click', function() {
  document.getElementById('ausgabe').innerHTML = 'Die Dauer des Videos beträgt: '+ song.duration; +' Sekunden.'}, false);
</script>

Der Button sollte nach dem Starten verschwinden oder nicht mehr anzuklicken sein. Ich bräuchte nur diesen Button, keinen Pause-Button oder ähnliches.
Anschließend sollte wie bei Ihrem Code die "Weiter-Taste" erscheinen. Zudem wäre es wichtig, dass das Video nahezu im Vollbild-Modus erscheint.

Vielen Dank für Ihre Mühe! Und einen angenehmen Sonntag!
by SoSci Survey (305k points)
> Warum wäre es grundsätzlich zuverlässiger das Video zu schneiden? Können spezielle Codes ab und zu Schwierigkeiten machen?

Mehr Komplität bietet immer Raum für Fehler :) Ich denke an so absurde Sache wie dass ein Mobilgerät das automatische Abspielen eines Videos blockieren könnte...

> Wäre es auch möglich, dass man das Video über einen Start Button ... wie in diesem Code beginnen lässt?

Natürlich - hier wird beim Klick auf den Knopf lediglich die .play()-Methode des Video-Elements aufgerufen.

document.getElementById('play').addEventListener('click', function() { song.play(); }, false);

Statt song würde die Variable in Ihrem Code video heißen. Und natürlich müssten Sie irgendwo auf der Seite einen passenden Knopf platzieren.

> Zudem wäre es wichtig, dass das Video nahezu im Vollbild-Modus erscheint.

Da haben der Browser und der Benutzer ein Wörtchen mitzureden ;) Aber prinzipiell können Sie das <video> Element so skalieren und platzieren, wie Sie möchten. Nach dem Klick auf den Play-Knopf könnten Sie z.B. die Breite des Videos auf die Größe des Browser-Fensters anpassen:

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);
by s139184 (200 points)
edited by SoSci Survey
Okay,

Das ist aktuell der Code, den ich verwende. Momentan spielt er das Video 2-fach ab.

<video width="512" height="288" controls controlsList="nodownload" id="stimulus">
  <source src="https://www.dropbox.com/s/20mndbl2jyen2oi/1_CO_RB_6m_mp4.mp4?dl=1" type="video/mp4" />
</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>


Das ist gut! Nur, wo exakt füge ich diesen Befehl:

document.getElementById('play').addEventListener('click', function() { song.play(); }, false);

… dort oben ein, sodass keine Playtaste des Players sichtbar ist und geklickt werden kann, sondern nur eine Start-Button erscheint, der das Video abspielt. Ich wollte quasi Ihren ersten „Wiederholung des Videos“-Code mit einer „externen“ Start-Taste verbinden.

Oder wo füge ich den Code zum Umstellen auf Vollbildschirm oben in den Code ein? Einfach an das Ende?

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);

Danke & Lieben Gruß
by SoSci Survey (305k points)
> Nur, wo exakt füge ich diesen Befehl:

Irgendwo im <script>-Bereich (außerhalb einer Funktion, versteht sich) und dieser wiederum muss unterhalb des Play-Buttons stehen.

> sodass keine Playtaste des Players sichtbar ist

Das hat mit dem Code nichts zu tun. Dafür müssen Sie den folgenden Teil aus ihrem <video>-Tag entfernen:

controls controlsList="nodownload"

> Oder wo füge ich den Code zum Umstellen auf Vollbildschirm oben in den Code ein?

Das ist eine ergänzte Variante des erstgenannten play()-Scripts. Also entweder das eine oder das andere. Beides sagt: Liebes JavaScript, suche dir den Knopf mit der HTML-ID "play" und wenn jemand draufklickt ("click"), dann macht das, was in der Funktion steht. In der Funktion steht dann play() und - im zweiten Fall - noch ein wenig mehr.
by s139184 (200 points)
Okay, Punkt 2 ist ja ziemlich leicht umzusetzen, Punkt 3/1 (wäre ja der selbe Platzierungsort) ist es vermutlich auch, aber ich erkenne nicht, wo der Play-Button in diesem Code ist:

<video width="512" height="288" id="stimulus">
  <source src="https://www.dropbox.com/s/20mndbl2jyen2oi/1_CO_RB_6m_mp4.mp4?dl=1" type="video/mp4" />
</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>
by SoSci Survey (305k points)
> aber ich erkenne nicht, wo der Play-Button in diesem Code ist:

Das liegt daran, dass Sie noch keinen Play-Button eingefügt haben. Das müssen Sie selbst machen. Zum Beispiel so:

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

Oder so:

<img src="playbutton.png" id="play">

Oder was auch immer für ein HTML-Element Sie als Play-Button verwenden möchten.
by s139184 (200 points)
Okay, danke!

Mir wird eine Fehlermeldung angezeigt, wenn ich es in dieser Form dort einfüge:

<video width="512" height="288" id="stimulus">
  <source src="https://www.dropbox.com/s/20mndbl2jyen2oi/1_CO_RB_6m_mp4.mp4?dl=1" type="video/mp4" />
</video>

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

// Play-Taste einfügen

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

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>
by SoSci Survey (305k points)
Im <script> darf es nicht stehen - es ist ja ein "normales" HTML-Element, muss also vor das <script> Tag.
by s139184 (200 points)
reshown by s139184
Okay, der Button erscheint! Danke. Die Script Information für das Öffnen im Vollbildmodus habe ich ebenfalls eingefügt. Diese Funktion lässt sich bis jetzt nicht umsetzen. Ist es die falsche Stelle? Ist ja eigentlich im Script-Bereich, oder?

<video width="512" height="288" id="stimulus">
  <source src="https://www.dropbox.com/s/20mndbl2jyen2oi/1_CO_RB_6m_mp4.mp4?dl=1" 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>
by s139184 (200 points)
edited by SoSci Survey
Das hier ist die Seite. Ich kann über den Quellcode leider nichts finden. Es handelt sich um Seite 2.
Lieben Gruß

https://www.soscisurvey.de/test199042/?act=idzF0URNUVGsNgGn5tnpIbPu
by SoSci Survey (305k points)
> ...dachte dies müsste in das Script:

Ja, das ist JavaScript, das muss in das <script>-Tag. Aber das Play-Button muss davor stehen, damit dieser JavaScript-Schnipsel ihn findet.
by s139184 (200 points)
edited by SoSci Survey
dann müsste es doch aber so funktionieren, oder ? Merkwürdigerweise klappt das allerdings nicht.

<video width="512" height="288" id="stimulus">
  <source src="https://www.dropbox.com/s/20mndbl2jyen2oi/1_CO_RB_6m_mp4.mp4?dl=1" 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>

LG
by SoSci Survey (305k points)
Ja, das sieht auf den ersten Blick gut aus. Wenn Sie einen Pretest-Link direkt zur betroffenen Seite posten, kann ich gerne einen Blick in die JavaScript-Fehlerkonsole werfen, falls es so noch nicht funktioniert.

Können Sie natürlich auch. Einfach im Browser in der Nähe der Entwickler-Werkzeuge suchen.
by s139184 (200 points)
index.php?i=RONXB48F340S&rnd=JVHR:372

Uncaught SyntaxError: Unexpected token '}'

Das zeigt er an ... ist mit 372 die Zeile gemeint? Hier konnte ich allerdings nichts finden.
by SoSci Survey (305k points)
Einen gültigen Pretest-Link können Sie unter "Befragungsprojekt" -> "Pretest und Vorschau" erzeugen.

> Uncaught SyntaxError: Unexpected token '}'
> Das zeigt er an ... ist mit 372 die Zeile gemeint?

Wenn Sie auf die Zeilennummer klicken, sollte Ihnen der Browser den JavaScript-Code anzeigen, den er meint.

Ich denke, er meint das einsame }); zwei Zeilen unter dem
  video.play();
Das ist wohl durch's Kopieren in den Code geraten.
by s139184 (200 points)
Hey, ich habe es hinausgenommen, allerdings zeigt es jetzt die Fehlermeldung an, dass absolut nicht definiert sei. Könne Sie nicht auf diesen Link zugreifen?

https://www.soscisurvey.de/test199042/?act=H0OMquvTboWk6V4ehfOywrV3

<video width="512" height="288" id="stimulus">
  <source src="https://www.dropbox.com/s/20mndbl2jyen2oi/1_CO_RB_6m_mp4.mp4?dl=1" 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>
by SoSci Survey (305k points)
Das bezieht sich auf dieser Zeile:

video.style.position = absolute;

Da fehlen noch Anführungszeichen:

video.style.position = "absolute";
by s139184 (200 points)
Ich habe es angepasst, jetzt springt das Bild in der selben Größe einfach etwas nach rechts. Hier ist noch einmal der Link zu der Studie. Es ist die Seite 2.

https://www.soscisurvey.de/test199042/?act=BEM4QRfEXf0o5WtzADuQb9i1

Ansonsten zeigt mir die Java Konsole noch folgendes an:

A cookie associated with a cross-site resource at http://www.dropbox.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
?act=Bjlt93hWUrpSbecSplhIPpML:1 A cookie associated with a cross-site resource at http://dropbox.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
by s139184 (200 points)
edited by SoSci Survey
eine weitere Frage, bevor ich Sie zusätzlich noch einmal anschreibe:

Wenn alle Probanden bei mir quasi in der Experimentalgruppen sind, heißt: alle Probanden kriegen die gleichen 54 Videos zu sehen. Jeder Proband soll aber seine Rheinfolge zufällig gezogen bekommen.

Mache ich das dann wie folgt. Ich erstelle einen Zettel mit nur einem numerischen Code:

z.B.

1 = Experimentalgruppe

(Diese Variable nenne ich z.B. RG01)

Wenn ich jetzt für jede Person ohne Zurücklegen immer eines der 54 Videos aussuchen möchte, lade ich die 64 als Textbausteine hoch und „verlinke“ ihren Namen herein, oder?

$code = value('RG01');  // Auslesen der gezogenen Zufallszahl
 
// Text bzw. HTML-Code als Text anzeigen
if ($code == 1) {
  text('RG02');
} elseif ($code == 2) {
  text('RG03');
} elseif ($code == 3) {
  text('RG04');
} elseif ($code == 4) {
  text('RG05');
}

Nehmen wir an der 1. Stimuli für den Proband wurde ausgewählt, wie gebe ich jetzt an, dass der 2. Stimuli aus den übrigen gebliebenen 53 gezogen wird und nicht 1. Stimuli noch einmal.

Danke für deinen Support!

LG
by SoSci Survey (305k points)
In Ihrem <video>-Tag steht noch folgendes:

width="512" height="288"

Das muss raus, denn es begrenzt die Größe obgleich der Anzeigebereich eigentlich größer wäre.

> A cookie associated with a cross-site resource at http://www.dropbox.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`.

Die Einbindung von Videos aus der Dropbox wird immer wackelig bleiben. Wenn der Speicherplatz auf www.soscisurvey.de nicht ausreicht, ist es sicherer, die eigene Hochschule zu fragen, ob sie nicht mal eine Hochschullizenz einrichten möchten...

> Jeder Proband soll aber seine Rheinfolge zufällig gezogen bekommen.

Ich hoffe, Sie möchten überhaupt keinem Teilnehmer mehr als 10 Videos antun.

Aber unabhängig davon: Bei mehr als 3 oder 4 Stimuli sollten Sie die Dateinamen ins den Zufallsgenerator legen und mit replace() und einem Platzhalter arbeiten.
by s139184 (200 points)
Okay, danke noch einmal für die vielen hilfreichen Tipps!

1. Punkt

Die Größenbegrenzung ist entfernt (width="512" height="288").

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, hier wird das Video allerdings nicht mittig, sonder leicht nach rechts versetzt, präsentiert. Es wäre sehr nett, wenn Sie sich die Pre-Test Version hierzu mal ansehen könnten. Dann wird es klarer.

https://www.soscisurvey.de/test199042/index.php?i=YUZZK1NEAS49&rnd=LDRI

2. Punkt

Das war sowieso noch mein Plan, Dropbox war quasi nur ein Test. Meine Universität bietet Seafile (Sync-and-Share-Plattform) an. Demnach werde die Videos auf Ihren eigenen Servern gespeichert. Ist das der Ansatz von dem Sie sprachen (bzgl. einer Hochschulizenz) bzw. haben Sie damit gut Erfahrungen gemacht?

3. Punkt

Die Videos sind recht kurz, dauern jeweils nur 15 Sek, und jedes Video enthält ein  anderes Blickverhalten das auf die Probanden ausgerichtet ist. Bisher wurde mir rückgemeldet, dass es recht spannend sei, weil die Probanden die Blicke, die auf Sie geworfen werden, nach verschiedenen Parametern raten sollen und sich dabei tlw. an Szenen aus dem "realen" Leben erinnert fühlen.
Deshalb ist die Auflösung und die Größe des Bildes sehr wichtig, da es tatsächlich um die Augen/Blicke der gefilmten Personen geht.

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

Lieben Gruß
by s139184 (200 points)
Hier ist ein aktueller Pretest-Version, da ich etwas verändert hatte:

https://www.soscisurvey.de/test199042/?act=ZXfFZABwtYH2gyZwi30Ak57n
by s139184 (200 points)
edited by SoSci Survey
Noch eine Information zu Punkt 1: Ist es denn nicht möglich, dass ich mit der Abspielen-Taste nicht nur Play aktiviere sondern auch gleichzeitig den Vollbildmodus des Players. Per Mausklick als wir noch nicht die Abspieltaste integriert haben, konnte man ja im Bedienfeld des Players ganz normal die viereckige Vollbild-Taste drücken. Kann man die nicht mit der Abspiel-Taste verknüpfen?

Lieben Gruß & Danke!
by SoSci Survey (305k 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 (305k 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 (305k 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

...