SpeechSynthesisErrorEvent: error 属性
error
属性是 SpeechSynthesisErrorEvent
接口的一部分,它返回一个错误代码,指示语音合成尝试中出现的问题。
值
包含错误原因的字符串。可能的值包括:
canceled
-
一个
SpeechSynthesis.cancel
方法调用导致SpeechSynthesisUtterance
在开始播放之前从队列中移除。 interrupted
-
一个
SpeechSynthesis.cancel
方法调用导致SpeechSynthesisUtterance
在开始播放之后但尚未完成之前被中断。 audio-busy
-
此时无法完成操作,因为用户代理无法访问音频输出设备(例如,用户可能需要通过关闭其他应用程序来解决此问题)。
audio-hardware
-
此时无法完成操作,因为用户代理无法识别音频输出设备(例如,用户可能需要连接扬声器或配置系统设置)。
network
-
此时无法完成操作,因为某些必要的网络通信失败。
-
此时无法完成操作,因为没有可用的合成引擎(例如,用户可能需要安装或配置合成引擎)。
synthesis-failed
-
操作失败,因为合成引擎引发了错误。
-
在
SpeechSynthesisUtterance.lang
中设置的语言没有可用的合适语音。您可以使用window.speechSynthesis.getVoices()
方法来确定用户浏览器支持哪些语音和语言。 -
在
SpeechSynthesisUtterance.voice
中设置的语音不可用。 text-too-long
-
SpeechSynthesisUtterance.text
属性的内容过长,无法合成。 invalid-argument
-
SpeechSynthesisUtterance.rate
、SpeechSynthesisUtterance.pitch
或SpeechSynthesisUtterance.volume
属性的内容无效。 not-allowed
-
不允许操作开始。
示例
const synth = window.speechSynthesis;
const inputForm = document.querySelector("form");
const inputTxt = document.querySelector("input");
const voiceSelect = document.querySelector("select");
const voices = synth.getVoices();
// ...
inputForm.onsubmit = (event) => {
event.preventDefault();
const utterThis = new SpeechSynthesisUtterance(inputTxt.value);
const selectedOption =
voiceSelect.selectedOptions[0].getAttribute("data-name");
for (let i = 0; i < voices.length; i++) {
if (voices[i].name === selectedOption) {
utterThis.voice = voices[i];
}
}
synth.speak(utterThis);
utterThis.onerror = (event) => {
console.error(
`An error has occurred with the speech synthesis: ${event.error}`,
);
};
inputTxt.blur();
};
规范
规范 |
---|
Web 语音 API # dom-speechsynthesiserrorevent-error |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。