0 votes
in SoSci Survey (dt.) by s132402 (110 points)

Liebes SoSci Survey Team,

ich habe nun das gleiche Problem, dass der Audio Recorder trotz Testen und Ändern der Einstellungen verschiedener Browser und Computer nicht funktioniert, obwohl er vorher einwandfrei funktioniert hatte. Auch die Aufnahme auf https://www.webrtc-experiment.com/RecordRTC/simple-demos/ funktioniert.

Im Fragenkatalog die Fehlermeldung "Ihr Computer oder Browser unterstützt derzeit keine Tonaufnahme"

Außerdem wird der Audio Recorder im Fragebogen einfach übersprungen

Der HTML-Code lautet folgendermaßen:

    <!--[if !IE]> --> 
Bitte drücken Sie auf START, um die Aufnahme zu starten.
Drücken Sie auf STOP sobald Sie fertig sind.
<!-- <![endif]--> 
<!--[if IE]>
Der Internet Explorer unterstützt diese Aufzeichnung leider nicht.
<![endif]-->

<!-- Buttons -->
<div id="start_stop" style="margin: 2em 0 0.5em">
  <button id="btnStart" type="button" tabindex="50">START</button>
  <button id="btnStop" type="button" tabindex="50">STOP</button>
</div>
<div style="margin: 0.5em 0" id="audioReload">Bitte laden Sie die Seite neu (<a href="javascript:SoSciTools.reloadPage()">Neu Laden</a>) und gestatten Sie der Seite Zugriff auf Ihr Audio-Gerät.</div>

<!-- Audio recorder from https://github.com/muaz-khan/RecordRTC -->
<script src="../plugins/RecordRTC/RecordRTC.min.js"></script>
<script src="../plugins/RecordRTC/gumadapter.js"></script>


<script type="text/javascript">
<!--
"use strict";

//if ((webrtcDetectedVersion === null) || (webrtcDetectedVersion < webrtcMinimumVersion)) {
//commented out for safari to work
if ((webrtcDetectedVersion < webrtcMinimumVersion)) {
  alert("Ihr Browser unterstützt diese Aufnahme leider nicht.");
  throw new Error("no audio support");
}

var buttonStart = document.getElementById("btnStart");
var buttonStop = document.getElementById("btnStop");
var recordRTC;

function startRecording(button) {
  if (recordRTC) {
    recordRTC.startRecording();
    buttonStart.disabled = true;
    buttonStop.disabled = false;
  }
}

function stopRecording(button) {
  if (recordRTC) {
    recordRTC.stopRecording(onStop);
    // You may want to change this to allow a new try (replacing the old one)
    buttonStart.disabled = false;
    buttonStop.disabled = true;
  }
}

function onStop(audioURL) {
    var recordedBlob = recordRTC.getBlob();
    // Transfer the data
    %q.id%.sendBLOB(recordedBlob, onSendDone);
}

function onStream(stream) {
    var options = {
        //changed from "audio/ogg"
        //I think firefox doesn't support wav
        //and Chrome only supports webm
        mimeType: "audio/ogg",
        audioBitsPerSecond: 128000
    };
    recordRTC = new RecordRTC(stream, {//prev. "options" instead of curly barckets
    type: 'audio', //always records a stereo wav file
    recorderType: RecordRTC.StereoAudioRecorder, // force for all browsers
    numberOfAudioChannels: 2}
    );

    // Enable the start button
    buttonStart.disabled = false;
    // Remove warning
    document.getElementById("audioReload").style.display = "none";
}

function init() {
    buttonStart.disabled = true;
    buttonStop.disabled = true;

    var mediaConstraints = {
        video: false,
        audio: true
    };

    function onError(error) {
      alert("Ihr Computer oder Ihr Browser unterstützt derzeit keine Tonaufnahme." + "\n\n" + error);
    }
    navigator.mediaDevices.getUserMedia(mediaConstraints).then(onStream).catch(onError);
};

SoSciTools.attachEvent(window, "load", init);
SoSciTools.attachEvent(buttonStart, "click", startRecording);
SoSciTools.attachEvent(buttonStop, "click", stopRecording);

window.addEventListener("load", function() {
  window.setTimeout(startRecording, 5500);
});

//activates stop button and uploads answer if weiter is pressed directly
//or submits answer if stop button is pressed
var audioSent = false;
function onSubmit() {
  // Check if already sent
  if (!audioSent) {
    stopRecording();
    return false;
  } else {
    return true;
  }
}
function onSendDone() {
  audioSent = true;
  SoSciTools.submitPage();
}
SoSciTools.questionnaire.attachCheck(onSubmit);

//hide weiter button
//SoSciTools.submitButtonsHide();

//hide start and stop button
// Nach dem Laden der Fragebogen-Seite das Script starten
SoSciTools.attachEvent(window, "load",
  function() {
    // Objekt heraussuchen
    var content = document.getElementById("start_stop");
    // Ausblenden
    content.style.display = "none";
  }
);

// -->
</script>

Nach Überarbeiten des Codes von

<!-- Audio recorder from https://github.com/muaz-khan/RecordRTC -->
> <script src="../plugins/RecordRTC/RecordRTC.min.js"></script>
> <script src="../plugins/RecordRTC/gumadapter.js"></script>

zu

<!-- Audio recorder from https://github.com/muaz-khan/RecordRTC -->
> <!-- <script src="../plugins/RecordRTC/RecordRTC.min.js"></script> -->
> <!-- <script src="../plugins/RecordRTC/gumadapter.js"></script> -->
> <script src="https://www.WebRTC-Experiment.com/RecordRTC.js"></script>

war immer hin die Fehlermeldung im Fragenkatalog weg und im Fragebogen erscheinen jetzt immer hin der Start- und Stopp-Button, aber anklicken und aufnehmen funktioniert immer noch nicht. Jetzt erscheint im Fragebogen die Fehlermeldung "Bitte laden Sie die Seite neu (Neu laden) und gestatten Sie der Seite Zugriff auf Ihr Audio-Gerät"

Ich freue mich sehr auf die Rückmeldung!
Vielen Dank und freundliche Grüße

by SoSci Survey (322k points)
Also, dass es in der Frage-Vorschau nicht funktioniert, das ist im Prinzip in Ordnung.

> Außerdem wird der Audio Recorder im Fragebogen einfach übersprungen

Das dürfte nicht passieren... ich kann das so aber auch nicht replizieren. Wenn ich eine neue Frage "Audio Recorder" anlege und diese in eine Seite des Fragebogens ziehe, dann wird diese korrekt angezeigt und zeichnet auch Audio auf.

Könnten Sie bitte testweise mal eine neue solche Frage anlegen und auf eine Fragebogen-Seite ziehen und auf dieser Seite dann starten, um das zu validieren?

Wenn das Problem weiterhin besteht, posten Sie gerne einen Pretest-Link (a) mit Debug-Information und (b) direkt zu der Seite, auf welcher die Frage liegt.
by s132402 (110 points)
Vielen Dank für die schnelle Antwort. Ja, dass es in der Frage-Vorschau nicht funktioniert, ist in Ordnung.
Ich führe die Studie für meine Bachelorarbeit durch und das ist mein erster Berührungspunkt mit HTML und Skripten, das Experiment habe ich als Kopie einer anderen Imitationsstudie erhalten. Ich habe versucht eine Anleitung zum Erstellen einer Audio Recorder Frage zu finden, jedoch erfolglos. Kennen Sie vielleicht eine Anleitung dazu oder könnten es kurz erklären?
Vielen Dank im Voraus und Entschuldigung für die Umstände.

Hier ist noch der Pretest-Link zur Debug-Vorschau: [beep1] beep list1, S. 13
https://ling-survey.uni-konstanz.de/sosci/BAVuong/?act=dHqUEhfnMvyNIwJOMdq8Va6m
by s132402 (110 points)
Hier ist noch ein Vorschau-Link zu [beep1] beep list1, S. 16
(wo der Audio Recorder einfach übersprungen wird)
https://ling-survey.uni-konstanz.de/sosci/BAVuong/?act=ao9a6l0uuu7KbaMgVV3cz9J2

1 Answer

0 votes
by SoSci Survey (322k points)

Danke für den Pretest-Link.

Die Fehlerkonsole im Browser sagt

Uncaught ReferenceError: webrtcDetectedVersion is not defined

Ein Blick in den Quellcode des Frage zeigt dann auch, dass das zumindest nicht der aktuellen Frage-Vorlage für den Audio-Recorder entspricht. Da steht:

//if ((webrtcDetectedVersion === null) || (webrtcDetectedVersion < webrtcMinimumVersion)) {
//commented out for safari to work
if ((webrtcDetectedVersion < webrtcMinimumVersion)) {
  alert("Ihr Browser unterstützt diese Aufnahme leider nicht.");
  throw new Error("no audio support");
}

Ich bin nicht sicher, ob das so vielleicht mal in einer früheren Version genutzt wurde. Aber die auf dem Server der Uni installierte Version ist mittlerweile auch schon über ein halbes Jahr als. Sie können sich - wenn Sie möchten - auf www.soscisurvey.de ein Benutzerkonto anlegen, dort eine Audio-Recorder-Frage, diese als XML exportieren und dann auf dem Uni-Server importieren. Oder Sie fragen bei den Kolleg:innen in der IT einmal nach, dass diese den Server aktualisieren. Ich kann nämlich nicht 100%ig sicher sagen, ob in der alten Version alle notwendigen Komponenten für die neue Variante des Audio-Recorders enthalten sind.

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

...