Ich versuche, eine kleine Webseite mit einem Javascript zu realisieren, das erlaubt, einen spechsynthesis Teil vom Text zwischen zwei mp3 zu spielen.SpeechSynthesis.speaking nie wahr
Aus welchem Grund auch immer die eine Aussage des gesprochenen Teils nicht funktioniert, ich wollte eine rekursive Funktion erstellen, die mir hilft. Dazu benutze ich die "sprechende" Methode der SpeechSynthesis. Aber aus welchem Grund auch immer, Sprechen ist niemals wahr.
Ich debuggte und versuchte auch mehrere Aussagen (siehe Code), aber es stellt sich nie heraus, um wahr zu sein. Gibt es etwas mit dem Code? Wie kann man sonst einen Fehler dieser Bibliothek melden?
playEnd() spielt nur ein mp3, wenn der Synthesizer spricht. Bitte beachten Sie, wenn ich playEnd() in die if-Anweisung einfügen, wird es nicht abgespielt. Ich kann irgendeinen Code dort hineinlegen, er wird nie erreicht, da das Synthesizer-Sprechen niemals wahr sein wird. Dieses Beispiel ähnelt dem Beispiel der Mozilla-Grundlagen-Dokumentation (https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/speaking). Ich wollte es testen, da die Rekursion nie funktioniert hat.
EDIT: Rekursion wird es immer noch nicht in meiner spezifischen Codierung tun. Fehle ich hier etwas?
function doSpeech() {
var synth = window.speechSynthesis;
var speech = new SpeechSynthesisUtterance();
speech.text = getText();
speech.lang = "en-US";
speech.voice = speechSynthesis.getVoices().filter(function(voice) { return voice.name == 'Google UK English Male'; })[0];
speech.addEventListener('start', function(){
speechEndLoop(synth);
});
synth.speak(speech);
}
function speechEndLoop(x) {
if (x.speaking) {
speechEndLoop(x);
} else {
playEnd();
}
}
Oh ja, es macht es mit der Nachricht Beispiel (2.). Trotzdem habe ich Probleme mit der Ausführung der Rekursion. Fehle ich hier etwas grundsätzlich? (siehe oben Bearbeiten). – Kaibear