0 votes
in SoSci Survey (dt.) by s160455 (275 points)

Hallo!

Da ich nicht auf meinen frühen Beitrag antworten kann (ich muss immer wieder anmelden), hier ein Update:

ich bin der Anleitung zum Abspielen kontrollieren gefolgt (https://www.soscisurvey.de/help/doku.php/de:create:media#abspielen_kontrollieren)

Einziger Unterschied ist, dass ich kein video sondern ein audio habe. Nach meiner Einschätzung sollte untenstehender Skript also den Punkt der angehörten Audiodatei abspeichern.

Ich habe interne Variablen mit dem Objekt ZF02 auf der Seite eingebunden, wo die Audios abzuspielen sind.

Ich habe den Fragebogen getestet und habe in den heruntergeladenen Daten, die Variablen ZF02_01 und ZF02_02 nicht aufgefunden.

Gibt es ggf. einen guten Hinweis?

    <script type="text/javascript">
<scriptwindow.setInterval(function() {
  var audio = document.getElementById("trailer"); 
  var intVar = document.getElementById("ZF02_01");  
  intVar.value = audio.currentTime;
}, 100);

<scriptwindow.setInterval(function() {
  var audio = document.getElementById("advert"); 
  var intVar = document.getElementById("ZF02_02");  
  intVar.value = audio.currentTime;
}, 100);

</script>
by s160455 (275 points)
Da ich im Skript keine Fehler findem aber keine Daten an die internen Variablen ZF02_01 und ZF02_02 übergeben werden.

Mag ggf. ein Fehler in der Identifikation des Objekts liegen:

Kann an dem HTML Aufruf aber auch keinen direkten Fehler erkennen:
<audio width="480" height="480" id="trailer" preload="auto" controls controlsList="nodownload">
by s160455 (275 points)

1 Answer

0 votes
by SoSci Survey (327k points)

ich muss immer wieder anmelden

Das kann passieren, wenn Sie die (Google-)Suche im Online-Support verwenden - aus Sicherheitsgründen werden Sie dann ausgeloggt. Wenn Sie die URL Ihres Beitrags direkt öffnen, bleiben Sie regulär eingeloggt.

Ich habe den Fragebogen getestet und habe in den heruntergeladenen Daten, die Variablen ZF02_01 und ZF02_02 nicht aufgefunden.

Stellen Sie bitte sicher, dass Sie die Frage ZF02 in die Seite gezogen haben, am besten oberhalb des HTML-/JavaScript-Codes.

Prüfen Sie außerdem im Debug-Modus nach dem Klick auf "Weiter", ob für die Variablen Inhalt gespeichert wird.

Wenn nicht, dann prüfen Sie bitte die JavaScript-Konsole im Browser. Sie können ggf. auch einen Pretest-Link direkt zur betroffenen Seite erstellen und posten.

by s160455 (275 points)
Besten Dank. Also die Variable ist oberhalb des Scriptes auf der gleichen Seite eingebunden.

Ist das Skript an sich OK?

Die Debug-Information deuten darufhin, dass keine Inhalte übertragen wurden:
[Information]    Keine Antwort für ZF02_01
[Information]    Keine Antwort für ZF02_02

Daher würde ich vermuten, dass das Skript ggf. fehlerhaft ist.
by s160455 (275 points)
by SoSci Survey (327k points)
Der JavaScript-Code stolpert an dieser Stelle:

<script type="text/javascript">
<scriptwindow.setInterval(function() {
  var audio = document.getElementById("trailer");
  var intVar = document.getElementById("ZF02_01");  
  intVar.value = audio.currentTime;
}, 100);

Da scheint einfach ein "<script" zu viel zu sein?!
by s160455 (275 points)
Besten Dank. Ich nahm bereits an, dass der Fehler vor dem Bildschirm sitzt...
Danke!
by s160455 (275 points)
Im weiteren Verlauf des Fragebogens binde ich eine Audio-File mit der ID "repeat" erneut ein.
Die Randomisierung und ursprüngliche Darstellung passierte auf Seite 4. Auf Seite 4 wird auch die interne Variable eingebunden.

Auf Seite 5 besteht nun die Möglichkeit diese Audiodatei erneut zu hören.
Kann ich dann in die Interne Variable von Seite 4 das Play Event zählen?

Da ich die Wiederholung auch auf den folgenden Seite anbiete, wäre dies natürlich toll, sonst muss man für jede Seite eine interne Variable erstellen.


Zumindest mein erster Versuch mit folgendem Code war nicht erfolgreich:

<script>
    // Greife auf das Audio-Element und den Zähler zu
    var audio = document.getElementById("repeat");
    var intVar = document.getElementById("ZF02_03");
    
    // Überprüfe, ob intVar.value leer oder nicht gesetzt ist
    if (!intVar.value) {
    intVar.value = 0; // Setze auf 0, wenn kein Wert vorhanden ist
    }
    
    // Füge einen Event-Listener hinzu, der auf "play" reagiert
    audio.addEventListener('play', function() {

    i = parseInt(intVar.value);
    i = i+1;
    intVar.value = i; });
</script>

Vielen Dank für alle Antworten.

PS: Ich wusste nicht, ob ich hier ein neues Thema aufmachen sollte.
by SoSci Survey (327k points)
> Auf Seite 5 besteht nun die Möglichkeit diese Audiodatei erneut zu hören.
> Kann ich dann in die Interne Variable von Seite 4 das Play Event zählen?

Ich verstehe nicht genau, was Sie machen möchten?

Intuitiv würde ich sagen, dass Sie eine zweite Abspielposition in einer zweiten Variable speichern sollten, damit Sie das in der Auswertung separat haben und wissen, was da passiert ist.

> Da ich die Wiederholung auch auf den folgenden Seite anbiete, wäre dies natürlich toll, sonst muss man für jede Seite eine interne Variable erstellen.

Also, es gibt schon Möglichkeiten, dass man mehrere Werte in eine interne Variable schreibt. Das wird aber kompliziert (weil das JavaScript die Werte zum Aktualisieren auch wieder trennen muss) und damit fehleranfällig.

Sie können aber das JavaScript so umschreiben, dass Sie die Funktionalität in eine Funktion packen, und dann nur noch den Namen der internen Variable an diese Funktion übergeben. Das macht es einfacher zum Einfplegen und zu Warten.
by s160455 (275 points)
Besten Dank. Ich versuche es besser zu formulieren.

Die Proband*innen können auf den Seiten 5, 6 und 7 die Audio noch einmal hören. Diese Wiederholung hat das ID "repeat" bekommen. Dort würde ich gerne in der internen Variablen ZF02_03 hochzählen, wie häufig die Möglichkeit genutzt wurde - da dachte ich an das Play Event.

Die internen Variablen hatte ich bereits auf Seite 4 weitergegeben. Ich vermute, dass die auch in der Session weitergereicht werden.

Aktuell funktioniert mein JavaScript leider noch nicht.
by SoSci Survey (327k points)
> Dort würde ich gerne in der internen Variablen ZF02_03 hochzählen, wie häufig die Möglichkeit genutzt wurde

Ah, verstehe, danke für die Erklärung.

Ich würde dennoch empfehlen, dass Sie auf jeder Seite auch speichern, bis wohin abgespielt wurde. Nur so können Sie in der Auswertung etwas darüber sagen, wie das genutzt wurde.

Das Play-Event hat nämlich den Nachteil, dass es jedesmal ausgelöst wird, wenn der Play-Knopf gedrückt wird. Also auch, wenn jemand pausiert und dann wieder weiter abspielt. Außerdem wissen Sie aufgrund der Zählung nicht, ob die Audio-Datei nur kurz angespielt oder komplett abgespielt wurde.

Aber wenn Sie dennoch die Zählung haben möchten, schauen Sie bitte als erstes mal in die Fehlerkonsole des Browsers, ob dort Fehler angezeigt werden: https://www.soscisurvey.de/help/doku.php/de:create:javascript#fehler_finden (frei Auge sehe ich auf den ersten Blick keinen Fehler).

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

...