SpeechSynthesis: voiceschanged Ereignis
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.
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
Specification |
---|
Web Speech API # eventdef-speechsynthesis-voiceschanged |
Web Speech API # dom-speechsynthesis-onvoiceschanged |