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

0 votes

Hallo!

Ich habe nur hoffentlich die letzen 2 Fragen.

1, Wie kann ich das Abspielen einer mp3-Datei nur auf 1mal begrenzen? ich habe den Code ausprobiert aber man kann trotzdem beliebig oft abspielen.

<script type="text/javascript">
var counter = 0;
function playAudio() {
  if (counter < 2) {
    var audio = document.getElementById("audio01");
    audio.currentTime = 0;  // Zurückspulen
    audio.play();
    counter++;
  }
}
</script>

<div>
  <button type="button" onclick="playAudio()">Abspielen</button>
</div>

Außerdem werden die Dateien plötzlich abgespielt wenn der Teilnehmer die Fehlermeldung (bei fehlender Antwort nachhaken zum Beispiel) angezeigt bekommt. Im Prinzip soll es nicht automatisch abgespielt wenn die Seite lädt sondern nur beim Knopf-Drücken.

  1. Ich habe gleich 3 Audio-Dateien auf einer Seite die der Teilnehmer dann raten muss (welche ist schöner etc) - die werden dann alle zusammen im Chor abgespielt - wie begrenze ich das? (ich glaube das hängt mit Frage 1 zusammen).

Vielen lieben Dank für Ihre Antworten, Sie haben mir schon sehr geholfen. Nur jetzt der letze Schritt!

Grüsse
Katharina

in SoSci Survey (dt.) by s044714 (130 points)
edited by SoSci Survey

1 Answer

0 votes

Das Audio-File lässt sich mittels Klick auf den (extra) Abspielen-Knopf mehr als zweimal starten? Das würde ich eigentlich nicht erwarten - möchten Sie vielleicht einmal einen Pretest-Link direkt zur betroffenen Seite posten - und vielleicht bauen Sie vor dem IF noch folgende Zeile ein und sehen in der Browser-Konsole nach, was angezeigt wird:

console.log(counter);

Außerdem werden die Dateien plötzlich abgespielt wenn der Teilnehmer die Fehlermeldung (bei fehlender Antwort nachhaken zum Beispiel) angezeigt bekommt.

Dabei wird die Fragebogen-Seite neu geladen - und damit neu gestartet. Entsprechend beginnt auch der Counter von vorne. Wenn Sie das verhindern möchten, müssten Sie den Counter in eine interne Variable speichern - und auch von dort nehmen:

Legen Sie eine interne Variable an (z.B. IV01_01) und ziehen Sie diese auf die Seite

Statt der JavaScript-Variable counter verwenden Sie den Inhalt dieser Variable. Das würde etwa so aussehen:

var input = document.getElementById("IV01_01");
if (parseInt(input.value) < 1) {
  // Dann abspielen
  input.value = input.value + 1;
}

Und um den Wert beim ersten Aufruf auf 0 zu setzen, müsste noch in den PHP-Code zu Beginn der Seite (vor der Einbindung der internen Variable!)

preset('IV01_01', 0);
by SoSci Survey (82k points)
Vielen Dank für die Antwort!

Hier ist der Link für den Fragebogen - bei mir ist ja noch problematisch weil ich noch Randomisierung der Fragen habe.... https://www.soscisurvey.de/impress/?act=t5fZDv0PdDUtuEIABxGTHfzK

Sehr schlimm ist auch dass auf den Seiten wo 3 Audi-Dateien sind werden sie alle gleichzeitig angespielt (wie z B GT) Seite 8.

Danke!
Wenn Sie drei Audio-Dateien verwenden möchten, müssen Sie alles dreimal schreiben - also drei interne Variablen, drei unterschiedliche id="..." beim `<audio>`-Tag, drei Abspielen-Buttons und dreimal den JavaScript-Code.

Die Randomisierung hingegen sollte eigentlich keinen Ärger machen.
Vielen Dank!

Also hier habe ich leider nicht verstanden:

Legen Sie eine interne Variable an (z.B. IV01_01) und ziehen Sie diese auf die Seite (welche Seite?)

wo soll ich sie anlegen und wie "weiss" die Variable dass sie Counter ist?:)
Wie Sie interne Variablen (das ist einfach nur ein Fragetyp) anlegen, wird heir im Detail beschrieben: https://www.soscisurvey.de/help/doku.php/de:create:questions:internal

Ziehen Sie diese Frage dann auf die Seite, auf welcher Sie auch den JaveScript-Code einbinden. Für mehr Seiten benötigen Sie mehr solche Fragen. Das IV01 ersetzen Sie dann natürlich durch die Kennung der Frage "interne Variablen", die Sie angelegt haben.
...