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-
操作的开始未被允许。
示例
js
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 (const voice of voices) {
if (voice.name === selectedOption) {
utterThis.voice = voice;
}
}
synth.speak(utterThis);
utterThis.onerror = (event) => {
console.error(
`An error has occurred with the speech synthesis: ${event.error}`,
);
};
inputTxt.blur();
};
规范
| 规范 |
|---|
| Web Speech API # dom-speechsynthesiserrorevent-error |
浏览器兼容性
加载中…