SpeechSynthesisUtterance: mark 事件

Baseline 已广泛支持

此功能已成熟,并可在多种设备和浏览器版本上使用。自 2018 年 9 月以来,它已在各种浏览器中推出。

当口述语音达到 SSML 中的命名“mark”标签时,会触发 Web Speech API SpeechSynthesisUtterance 对象的 mark 事件。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或设置事件处理程序属性。

js
addEventListener("mark", (event) => { })

onmark = (event) => { }

事件类型

一个 SpeechSynthesisEvent。继承自 Event

Event SpeechSynthesisEvent

事件属性

除了下面列出的属性之外,父接口 Event 的属性也可使用。

charIndex 只读

返回事件触发时,在 SpeechSynthesisUtterance.text 中正在朗读的字符的索引位置。

elapsedTime 只读

返回事件触发时,在 SpeechSynthesisUtterance.text 开始朗读后经过的秒数。

name 只读

SpeechSynthesisUtterance.text 被朗读时,为特定类型的事件返回关联的名称:对于 mark 事件,它是到达的 SSML 标记的名称;对于 boundary 事件,它是到达的边界类型。

utterance 只读

返回触发事件的 SpeechSynthesisUtterance 实例。

示例

您可以在 addEventListener 方法中使用 mark 事件

js
utterThis.addEventListener("mark", (event) => {
  console.log(`A mark was reached: ${event.name}`);
});

或者使用 onmark 事件处理程序属性

js
utterThis.onmark = (event) => {
  console.log(`A mark was reached: ${event.name}`);
};

规范

规范
Web Speech API
# eventdef-speechsynthesisutterance-mark
Web Speech API
# dom-speechsynthesisutterance-onmark

浏览器兼容性

另见