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

Hallo,

ich möchte mit dem Fragetyp "Datei-Inhalte übertragen" in meinem Fragebogen ermöglichen, dass die Teilnehmer eine Audio-Datei aufnehmen können, die automatisch gespeichert wird, ähnlich einer Sprachnachricht bei Whatsapp.

Hierzu habe ich die vorgefertigten Bausteine genutzt, um die Frage zu erstellen. Am Desktop funktioniert alles bestens, allerdings wird auf meinem Smartphone sowohl bei Safari, als auch bei Chrome Folgendes angezeigt: "Ihr Browser unterstützt die Funktion leider nicht". Auch nachdem ich Safari explizit den Zugriff auf das Mikrofon gestattet habe, erschien dieselbe Fehlermeldung.

Hier der Text meiner Anweisung:

<!--[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]-->

Und hier der dazugehörige HTML Code, direkt übernommen aus den Bausteinen:

<!-- Buttons -->
<div 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)) {
  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);
}

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

// -->
</script>

Ich wäre sehr, sehr dankbar, wenn jemand eine Lösung für dieses Problem kennt!
Beste Grüße und schon vielen Dank im Voraus.

1 Answer

0 votes
by SoSci Survey (302k points)

Ich befürchte, Safari unterstützt die verwendete Schnittstelle nicht.

Zumindest wird auch andernorts (https://github.com/muaz-khan/RecordRTC/issues/655) ein Problem mit der für den Fragetyp eingesetzten Bibliothek RecordRTC auf Safari moniert.

Eine schnelle, einfache Lösung dafür habe ich leider nicht. Das wird einiges Einlesen in unterschiedliche Bibliotheken erfordern ... und die Zeit dafür werde ich 2020 leider nicht mehr finden. Heißt: Sie müssten selbst mal recherchieren, welche JavaScript-Bibliotheken zuverlässig auch in Safari auf iOS Audio aufzeichnen. Ich helfe dann hier im Online-Support gerne damit, das an den Fragetyp anzubinden.

by s116474 (110 points)
Hallo und vielen Dank für die zeitnahe Antwort!
Ich werde mich zwar selbst einlesen, doch wahrscheinlich übersteigt der Aufwand den voraussichtlichen Ertrag. Daher werde ich vermutlich einen anderen Ausweg suchen oder den Fragetyp weglassen. Das Einlesen in 2021 können Sie daher von Ihrer To-Do-Liste streichen :)

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

...