SpeechSynthesisUtterance不会触发“标记”事件

问题描述 投票:0回答:1

我无法触发mark实例的mark事件。

据我所知,这应该可行。我希望看到

SpeechSynthesisUtterance

相反,我得到

SpeechSynthesisUtterance

Started
Reached mark
Done
Started
Done
javascript speech-synthesis
1个回答
0
投票

很抱歉让您知道这是一个错误,并且尚未实现SSML。

document.querySelector('#play').addEventListener('click', function speak() { const utterance = new SpeechSynthesisUtterance( `<?xml version="1.0"?> <speak version="1.1">Foo <mark name="bar" /> baz.</speak>` ) const log = document.getElementById('log') utterance.addEventListener('start', () => {log.value = 'Started\n'}) utterance.addEventListener('mark', () => {log.value += 'Reached mark\n'}) utterance.addEventListener('end', () => {log.value += 'Done\n'}) log.value = 'Waiting…' speechSynthesis.cancel() speechSynthesis.speak(utterance) })<textarea id="log" disabled rows="3">Waiting…</textarea> <hr> <button id="play">Speak</button>

您会发现chronium问题已经存在9年了,所以我怀疑它会很快得到解决。

© www.soinside.com 2019 - 2024. All rights reserved.