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


Ich erhalte immer wenn ich die Frageart 'AudioRecorder' neu erstelle oder auch nur ändern möchte die Fehlermeldung wie in Bild 1. (Unabhängig vom Browser)


Wenn ich dann den Fragebogen testen möchte kann ich weder Start noch Stop drücken (Bild 2)

Wie kann ich den Fehler beheben? Ich glaube nicht, dass es am Code liegt, weil ich diese Meldung auch mit unverändertem HTML-Code erhalte.
Aber hier mal mein überarbeiteter HTML-Code:

 <!-- Buttons -->
<div style="margin: 2em 0 0.5em">
  <button id="btnStart" type="button" tabindex="50" onclick="dispRec(); timerStart();" > START </button>
  <button id="btnStop" type="button" tabindex="50" onclick="hideRec(); timerStop()" > STOP </button>
</div>

<div style="margin: 0.5em 0" id="audioReload">Please reload this page (<a href="javascript:SoSciTools.reloadPage()">Reload</a>) and allow the page to access you audio device.</div>

<div> <canvas width="500" height="50" id="meter"  style="display: none ;"> </canvas> </div>
<div> Recording time: <span id="time" > 0  </span> seconds</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 src="https://webaudiodemos.appspot.com/volume-meter/volume-meter.js"></script>
<script src="https://webaudiodemos.appspot.com/volume-meter/main.js"></script> 


<script type="text/javascript">

var canvasRec = document.getElementById('meter');

function dispRec(){
canvasRec.style.display="block";
}

function hideRec(){
canvasRec.style.display="none";
} 

</script>

<script type="text/javascript">

var timeElapsed = 0;
            var timerID = -1;
            function tick() {
                timeElapsed++
                document.getElementById("time").innerHTML = timeElapsed;
            }

            function timerStart() {
                if(timerID == -1){
                    timerID = setInterval(tick, 1000);
                }
            }

            function timerStop() {
                if(timerID != -1){
                    clearInterval(timerID)
                    timerID = -1
                }
            }

</script> 

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

if ((webrtcDetectedVersion === null) || (webrtcDetectedVersion < webrtcMinimumVersion)) {
  alert("Your browser does not support audio recording.");
  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);
}

function onStream(stream) {
    var options = {
        mimeType: "audio/ogg",
        audioBitsPerSecond: 128000
    };
    recordRTC = new RecordRTC(stream, options);
    // 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("Your computer or browser currently does not support recording audio." + "\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);

// -->
</script>

Freue mich schon auf eine Rückmeldung!
Vielen Dank.

by s187824 (130 points)
Hallo, was haben Sie geändert? Bei mir taucht derselbe Fehler auf

3 Answers

0 votes
by SoSci Survey (308k points)

Die Fehlermweldung erscheint, wenn die Frage beim Browser den Wunsch zum Zugriff auf das Mikrofon äußert - der Browser zeigt dann normalerweise eine entsprechende Aufforderung - und Sie das nicht erlauben.

Eventuell haben Sie auch irgendwann ein Häkchen "Entscheidung merken" gesetzt, sodass der Browser Sie gar nicht mehr fragt. Dies kann man im Browser bei den seitenspezifischen Einstellungen rückgängig machen. Wo die im jeweiligen Browser zu finden sind, verrät die Suchmaschine des Vertrauens.

Ebenfalls denkbar, dass Sie kein Mikrofon am Computer angeschlossen haben oder dieses generell nicht für den Browser freigegeben ist (Windows-Einstellungen -> Datenschutz).

Warum diese Meldung auch beim Bearbeiten der Frage erscheint? Weil die Vorschau unten sich auch an einer Tonaufnahme versucht. Der Start-Knopf kann dann natürlich erst aktiviert werden, wenn das Script vom Browser Zugriff auf das Mikrofon erhalten hat.

by s129756 (110 points)
Leider ist das nicht das Problem. Ich habe sämtliche Berechtigungen des Mikrofons erteilt und sogar die Einstellungen zurückgesetzt und habe mich dann erst mit der Frage an den Support gewandt, weil diese einfachen Schritte nicht zur Lösung des Problems geführt haben.
by SoSci Survey (308k points)
Posten Sie gerne einmal einen Pretest-Link direkt (!) zur betroffenen Seite im Fragebogen.
by s129756 (110 points)
https://www.soscisurvey.de/MAmultilingualism/?act=xtuH7GsOvZyYldTiSbP4L418
Link direkt zur betroffenen Seite
(Habe ihn auch ausprobiert, Mikrofon ist aktiviert, kann aber nicht Start klicken)
by SoSci Survey (308k points)
Ich habe in einer separaten Antwort geantwortet, um auch Screenshots einzubinden.
0 votes
by SoSci Survey (308k points)

Danke für den Pretest-Link. In Firefox unter Windows 10 wird zunächst nach der Berechtigung gefragt:

Und anschließend wird auch der "Start" Knopf aktiviert:

Ich muss deshalb davon ausgehen, dass die Funktion prinzipiell funktioniert.

Sie können auf der Website des verwendeten Audio Recorders (https://www.webrtc-experiment.com/RecordRTC/simple-demos/) einmal testen, ob Ihre Browser dort Audio aufzeichnen kann.

by s129756 (110 points)
Vielen Dank für die Mühe. Ich habe jetzt selbst schon eine Lösung gefunden, indem ich den HTML-Code abgeändert habe. So kommt zwar immer noch die Fehlermeldung beim Erstellen der Frage, aber beim Testen immerhin nicht mehr und die Aufnahme ist dann möglich.
by SoSci Survey (308k points)
Was haben Sie denn geändert? Womöglich stolpern künftig auch andere über dasselbe Problem...
by s203900 (110 points)
Ich habe das gleiche Problem, aber ich bin leider nicht so IT-affin, dass ich einen HTML-Code umschreibe. Hängt das auch mit dem MacBook zusammen. Verzeihen Sie bitte diese banale Frage :-)
by s132402 (110 points)
Darf ich fragen was genau Sie im HTML-Code geändert haben? Ich habe gerade das gleiche Problem, dass der Audio Recorder im Fragebogen nicht aufnimmt, unabhängig von Browser und Computer, mit allen Rechten zur Benutzung des Mikrofons erteilt. Vielen Dank im Voraus!
asked Oct 19, 2022 in SoSci Survey (dt.) by s132402 (110 points) Fehlermeldungen Audio Recorder
by SoSci Survey (308k points)
Die Frage hier ist bereits ein Jahr alt ... ich habe Zweifel, ob die Person, die gefragt und am HTML gearbeitet hatte, hier noch liest. Falls nicht, posten Sie gerne eine neue Frage im Online-Support und legen Sie dort auch gleich einen Pretest-Link bei, der direkt zu der betroffenen Seite in Ihrem Fragebogen führt. Dann können wir schonmal testen, ob es am Browser liegt oder am Fragebogen.
+1 vote
by s187824 (130 points)

ich habe den Fehler gefunden. Es darf immer nur eine Aufnahme pro Seite sein. Ansonsten taucht der Fehler auf

by SoSci Survey (308k points)
Danke für den Hinweis. Damit man mehrere Aufzeichnungen pro Seite verwenden kann, müsste der JavaScript-Code wohl umgeschrieben werden. Insbesondere müssten die Variablennamen in eine Funktion gekapselt werden, wie z.B. für dynamische Filter hier beschrieben: https://www.soscisurvey.de/help/doku.php/de:create:dynamic#beispiel_1bmehrere_gleichartige_fragen

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

...