我在cordova中使用了这个简单的代码:
document.addEventListener('deviceready', function () {
function talk () {
/*var msg = new SpeechSynthesisUtterance('jee wiz, you are so funny !');
/*msg.rate = 1; msg.pitch = 5; msg.lang ="en_EN";*/
/*speechSynthesis.speak(msg);*/
var u = new SpeechSynthesisUtterance();
u.text = 'Hello World';
u.lang = 'en-US';
u.rate = 1.2;
u.onend = function(event) { console.log('Finished in ' + event.elapsedTime + ' seconds.'); }
speechSynthesis.speak(u);
}
var element = document.getElementById('button');
element.addEventListener('click', function () {
talk();
});
}, false);
所以实际上talk();在控制台中返回此错误:语音初始化错误:2147483665
然后应用看起来崩溃/卡住,我无法在页面上执行任何操作。
奇怪的是,ios 支持语音合成 http://caniuse.com/#search=speech
出了什么问题以及为什么我无法获得 talk();如果我触发点击按钮?
注意:我正在使用 ios 7/8 的 ios 模拟器上进行测试
Best Answer-推荐答案 strong>
iOS 8 模拟器不支持文本转语音。在真机上试一试。
还将您的函数对话移出设备就绪事件监听器。
关于javascript - Cordova/Phonegap iOS Safari 和语音合成不起作用,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/27696976/
|