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 geändert hat, die von der Methode SpeechSynthesis.getVoices()
zurückgegeben werden würden (wenn das voiceschanged
-Ereignis ausgelöst wird).
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
, oder legen Sie eine Ereignishandler-Eigenschaft fest.
addEventListener("voiceschanged", (event) => { })
onvoiceschanged = (event) => { }
Ereignistyp
Ein generisches Event
ohne zusätzliche Eigenschaften.
Beispiele
Dies könnte verwendet werden, um eine Liste von Stimmen, zwischen denen der Benutzer wählen kann, neu zu füllen, wenn das Ereignis eintritt. Sie können das voiceschanged
-Ereignis in einer addEventListener
-Methode verwenden:
const synth = window.speechSynthesis;
synth.addEventListener("voiceschanged", () => {
const voices = synth.getVoices();
for (let i = 0; i < voices.length; i++) {
const option = document.createElement("option");
option.textContent = `${voices[i].name} (${voices[i].lang})`;
option.setAttribute("data-lang", voices[i].lang);
option.setAttribute("data-name", voices[i].name);
voiceSelect.appendChild(option);
}
});
Oder verwenden Sie die onvoiceschanged
-Ereignishandler-Eigenschaft:
const synth = window.speechSynthesis;
synth.onvoiceschanged = () => {
const voices = synth.getVoices();
for (let i = 0; i < voices.length; i++) {
const option = document.createElement("option");
option.textContent = `${voices[i].name} (${voices[i].lang})`;
option.setAttribute("data-lang", voices[i].lang);
option.setAttribute("data-name", voices[i].name);
voiceSelect.appendChild(option);
}
};
Spezifikationen
Specification |
---|
Web Speech API # eventdef-speechsynthesis-voiceschanged |
Web Speech API # dom-speechsynthesis-onvoiceschanged |