Cordova / Phonegap iOS Safari 和语音合成不起作用

Posted

技术标签:

【中文标题】Cordova / Phonegap iOS Safari 和语音合成不起作用【英文标题】:Cordova / Phonegap iOS Safari and speech synthesis wont work 【发布时间】:2014-12-29 22:29:28 【问题描述】:

我在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();在控制台中返回此错误:Speech initialization error: 2147483665

然后应用看起来崩溃/冻结,我无法在页面上执行任何操作。

奇怪的是,ios http://caniuse.com/#search=speech支持语音合成

出了什么问题以及为什么我无法获得 talk();如果我触发点击按钮?

注意:我正在使用 ios 7/8 的 ios 模拟器上进行测试

【问题讨论】:

function talk() 需要在事件监听器之外创建 @DawsonLoudon 如果我将通话功能移到 deviceready 列表器之外,我也会在控制台中收到相同的错误:( 【参考方案1】:

iOS 8 模拟器不支持文本转语音。在真机上试一试。

还将您的函数对话移出设备就绪事件侦听器。

【讨论】:

以上是关于Cordova / Phonegap iOS Safari 和语音合成不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap (Cordova) iOS 按钮单击

Phonegap (Cordova 2.9.0) iOS 上的地理定位

在 iOS 上安装 PushWoosh (PhoneGap/Cordova)

ios状态栏phonegap/cordova的黑色文本颜色

Phonegap / Cordova 在 ios8 中不起作用

适用于 iOS 的 Phonegap/Cordova 日历插件无响应