SpeechSynthesis: voiceschanged Ereignis
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2022 browserübergreifend verfügbar.
Das voiceschanged Ereignis der Web Speech API wird ausgelöst, wenn sich die Liste der SpeechSynthesisVoice Objekte, die von der SpeechSynthesis.getVoices() Methode zurückgegeben werden, verändert hat (wenn das voiceschanged Ereignis ausgelöst wird).
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener(), oder setzen Sie eine Ereignisbehandler-Eigenschaft.
addEventListener("voiceschanged", (event) => { })
onvoiceschanged = (event) => { }
Ereignistyp
Ein generisches Event ohne zusätzliche Eigenschaften.
Beispiele
Dies könnte verwendet werden, um eine Liste von Stimmen, die der Benutzer auswählen kann, neu zu befüllen, wenn das Ereignis ausgelöst wird. Sie können das voiceschanged Ereignis in einer addEventListener Methode verwenden:
const synth = window.speechSynthesis;
synth.addEventListener("voiceschanged", () => {
const voices = synth.getVoices();
for (const voice of voices) {
const option = document.createElement("option");
option.textContent = `${voice.name} (${voice.lang})`;
option.setAttribute("data-lang", voice.lang);
option.setAttribute("data-name", voice.name);
voiceSelect.appendChild(option);
}
});
Oder verwenden Sie die onvoiceschanged Ereignisbehandler-Eigenschaft:
const synth = window.speechSynthesis;
synth.onvoiceschanged = () => {
const voices = synth.getVoices();
for (const voice of voices) {
const option = document.createElement("option");
option.textContent = `${voice.name} (${voice.lang})`;
option.setAttribute("data-lang", voice.lang);
option.setAttribute("data-name", voice.name);
voiceSelect.appendChild(option);
}
};
Spezifikationen
| Spezifikation |
|---|
| Web Speech API> # eventdef-speechsynthesis-voiceschanged> |
| Web Speech API> # dom-speechsynthesis-onvoiceschanged> |