我看到一个问题,下面的jsfiddle中的语音合成在MacOS上的Chrome中不起作用(没有语音)(Chrome 113.0.5672.63,MacOS 13.2.1)。
这是一个奇怪的问题,因为语音合成确实在我正在开发的一个Web应用程序中的同一个Chrome示例中工作,而且jsfiddle也在同一台机器上的Safari和Firefox中工作。
我首先好奇的是jsfiddle代码是否适用于Chrome示例中的其他人。知道这一点将帮助我决定我想投入多少精力来追踪这个问题。
https://jsfiddle.net/pilyugin/dgygqLw2/
var wordsToSpeak = [
'Hello! This text should be longer than sixty or may be more symbols. Please see console log.',
'Now end event is fired!',
'You can use global variables to store utterance object.'
];
// this object for storing utterances globally
window.utterances = [];
function speak(text) {
var utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'en-US';
utterance.onend = function() {
// this code is not called
console.log(text);
};
// if you will comment this line, end event will not work!
utterances.push(utterance);
speechSynthesis.speak(utterance);
}
for (var i = 0; i < wordsToSpeak.length; i++) {
speak(wordsToSpeak[i])
}
1条答案
按热度按时间rseugnpd1#
你通常不能在Chrome中有一个页面自动播放音频,不,JSFiddle在我的Windows Chrome上也不能开箱即用。
添加一个按钮并在
使其在单击按钮后工作。