小编Ken*_*ams的帖子

Web语音API:始终在iOS Safari上获得支持的语音合成语音

我正试图在iOS Safari上获得支持的语音合成语音列表.

根据API,我应该能够通过调用以获得一系列声音:

window.speechSynthesis.getVoices();
Run Code Online (Sandbox Code Playgroud)

有时这会给我一些声音列表,有时却没有.请参阅以下jsfiddle:https://jsfiddle.net/sq7xf327/

如果我在iPhone 5(iOS 8.1.3)上打开它,我不会得到一致的结果.有时我会收回所有37个声音,有时我会收到0个声音.如果你继续刷新它偶尔会显示37或0.

我知道在Chrome中你可以添加一个事件监听器

window.speechSynthesis.voiceschanged 
Run Code Online (Sandbox Code Playgroud)

事件以了解语音何时加载,但Safari中不支持此事件.

我试过的一个技巧是定期检查:

var timer = setInterval(function () {
    window.voices_ = window.speechSynthesis.getVoices();
    if (window.voices_.length > 0) {
        clearInterval(timer);
    }
}, 1000);
Run Code Online (Sandbox Code Playgroud)

这也没有给我一致的结果.

知道如何在iOS Safari上可靠且始终如一地获得支持的语音合成语音吗?

javascript safari speech-synthesis ios

6
推荐指数
1
解决办法
3796
查看次数

标签 统计

ios ×1

javascript ×1

safari ×1

speech-synthesis ×1