2014-12-29 3 views
2

Я использую этот простой код в Кордове:Кордова/PhoneGap IOS Safari и синтез речи не будет работать

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); 

Так на самом деле говорить(); возвращает эту ошибку в консоли: Speech initialization error: 2147483665

, а затем приложение выглядит разбитым/frezzed, и я ничего не могу сделать на странице.

Это странно синтез речи выглядит поддерживается на КСН http://caniuse.com/#search=speech

Что случилось и почему я не могу говорить(); если я запускаю щелчок на кнопке?

NB: Я проверяю на Ios тренажере с прошивкой 7/8

+1

'function talk()' необходимо создать за пределами eventlistener –

+0

@DawsonLoudon Я получаю ту же ошибку и в консоли, если я перехожу к функции разговора вне deviceready listner :( – sbaaaang

ответ

1

КСН 8 симулятор не поддерживает преобразование текста в речь. Попробуйте это на реальном устройстве.

Также перемещайте свою функциональную беседу из прослушивателя событий готовности устройства.